java - 在 println 中调用 println 方法

标签 java printing tostring

我刚刚写了这段代码:

public class T 
{
  public String toString()
   {
     System.out.println("new line");
     return " "+4;
   }
}

和:

public static void main(String[] args)
{
     T t = new T();
     System.out.println("11"+t);
}

虽然我预计它会打印

11 new line
4

它实际上打印了:

new line
11 4

这是为什么呢? 这个打印的顺序是什么?其背后的逻辑是什么?

谢谢!

最佳答案

对 toString 的调用发生在“11”打印之前。

原因(就像@Tom所说),为了连接字符串,它必须首先创建所有的片段,然后再连接。

只有在字符串完全准备好之后 - 它才会显示到您的屏幕上。

关于java - 在 println 中调用 println 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42542367/

相关文章:

java - 在 Java JNI 编程中使用 std::string 时的性能和内存使用情况

java - 类似旅行顾问的对话框,并在 Android 中显示自定义背景或启动画面

Python:脚本逐个字母而不是整个单词打印出字典值?

java 将 toString() 传递给方法

javascript - 分配给 {}.toString 是什么意思?

Java - 重构几乎相同的方法

java - 如何使用 Graphics2D 在 JGraphX 图表上绘图?

java - 打印 Java 数组的最简单方法是什么?

html - 所见即所得的 html 表单打印

php - 创建从 PHP 到 Delphi 的应用程序打印队列