System.out.print()如何工作?

System.out.print()如何工作?,第1张

System.out.print()如何工作?

System.out
只是的一个实例
PrintStream
。您可以检查其JavaDoc。它的可变性基于
方法重载
(名称相同但参数不同的多个方法)。

该打印流将其输出发送到所谓的
标准输出


在您的问题中,您提到了一种称为 可变参数函数 (或
varargs
)的技术。不幸的是,这不受的支持

PrintStream#print
,因此您必须将其与其他东西混淆。但是,用Java实现它们非常容易。只需检查文档即可。


而且,如果您好奇Java如何知道如何连接非字符串变量

"foo" + 1 + true + myObj
,则这主要是Java编译器的责任。

串联中不涉及任何变量时,编译器仅将字符串串联。当涉及到变量时,串联被转换成

StringBuilder#append
链。结果字节码中没有连接指令。也就是说,
+
在编译过程中会解析运算符(在谈论字符串连接时)。

Java中的所有类型都可以转换为字符串(

int
通过
Integer
类中的
boolean
方法,通过
Boolean
类中的方法,对象通过它们自己的
#toString
…)。如果您有兴趣,可以检查StringBuilder的源代码。


更新:
我很好奇自己,并检查了(使用javap)示例所

System.out.println("foo"+ 1 + true + myObj)
编译的内容。结果:

System.out.println(new StringBuilder("foo1true").append(myObj).toString());


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5016700.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-15

发表评论

登录后才能评论

评论列表(0条)

    保存