栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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());


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407013.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号