- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如果用户将原始类型参数传递给 println()
,幕后到底发生了什么?例如
int i =1;
System.out.println("My Int"+i);
//and in
System.out.println(i)
它如何打印 "My Int 1"
和 "1"
,即使它需要一个 String
对象?
更新..
我认为 AutoBoxing
发挥了作用。这也是真的吗?
最佳答案
System.out
是 PrintStream
. PrintStream
为 println
提供了大量重载,例如 println(int)
或 println(String)
, 因此编译器将简单地选择最合适的。
在您的第一个示例中发生的事情是您使用 "My Int"
和 i
的字符串连接构造一个新的 String
并传递 < em>that String
到 println
方法。该方法不需要知道如何“打印连接的 String
值”,因为它只是获得一个普通的 String
对象。
关于java - 如果用户将原始类型参数传递给 println(),幕后到底发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024674/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!