Jshell中的println和printf有何不同

问题描述

为什么Jln中的println和printf显示不同?

我最近发现了有关JShell的内容,并想尝试一些事情,然后我发现了这一点。

THIS is the 'this'

为什么将println的输出输出为普通输出,为什么将printf的输出输出为所有这些东西?

解决方法

printf返回一个PrintStream,因此jshell向您显示了将返回值转换为字符串($1$2之后的内容)的方式,因为PrintStream不会覆盖toString,所以它使用the one from Object

正如Rogue在评论中指出的那样,由于printf除非有指示,否则不会打印换行符,因此您会在与打印值相同的行上看到返回值。

println不返回任何内容,因此只显示打印值(和换行符)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...