首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果用户将原始类型参数传递给println(),那么场景后面到底会发生什么呢?

如果用户将原始类型参数传递给println(),那么场景后面到底会发生什么呢?
EN

Stack Overflow用户
提问于 2011-08-11 11:00:00
回答 5查看 644关注 0票数 4

如果用户将原始类型参数传递给println(),那么场景后面到底会发生什么呢?例如:

代码语言:javascript
复制
int i =1;

System.out.println("My Int"+i);

//and in

System.out.println(i)

它如何打印"My Int 1""1",即使它需要一个String对象?

更新.

我认为AutoBoxing起作用了。这也是真的吗

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-08-11 11:03:35

它不需要字符串对象,这里也没有自动装箱。还有原语类型的方法

公开无效印刷(Int i) 打印一个整数。String.valueOf(int)生成的字符串根据平台的默认字符编码转换为字节,这些字节完全按照写(Int)方法的方式编写。

票数 4
EN

Stack Overflow用户

发布于 2011-08-11 11:03:48

代码语言:javascript
复制
System.out.println("My Int"+i);

等于

代码语言:javascript
复制
System.out.println(new StringBuilder().append("My Int").append(i).toString();

例如, :

代码语言:javascript
复制
public class Main{
  public static void main(String[] ar){
    int i = 10;
    System.out.println("My Int"+i);
  }
}

现在遵守代码

代码语言:javascript
复制
public static void main(java.lang.String[]);
  Code:
   0:   bipush  10
   2:   istore_1
   3:   getstatic       #2; //Field java/lang/System.out:Ljava/io/PrintStream;
   6:   new     #3; //class java/lang/StringBuilder
   9:   dup
   10:  invokespecial   #4; //Method java/lang/StringBuilder."<init>":()V
   13:  ldc     #5; //String My Int
   15:  invokevirtual   #6; //Method java/lang/StringBuilder.append:(Ljava/lang/
String;)Ljava/lang/StringBuilder;
   18:  iload_1
   19:  invokevirtual   #7; //Method java/lang/StringBuilder.append:(I)Ljava/lan
g/StringBuilder;
   22:  invokevirtual   #8; //Method java/lang/StringBuilder.toString:()Ljava/la
ng/String;
   25:  invokevirtual   #9; //Method java/io/PrintStream.println:(Ljava/lang/Str
ing;)V
   28:  return
票数 5
EN

Stack Overflow用户

发布于 2011-08-11 11:01:51

实际上println不需要字符串对象。它也被定义为int。

编辑:

如何: println是一个重载的方法。它有不同的版本:

代码语言:javascript
复制
public void println(int x) {
     print(x);

}公开无效println(长x) {} .

代码语言:javascript
复制
//that is what it does
public void print(int i) {
write(String.valueOf(i));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7024674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档