在第一个System.out.println(123);中123 是 int类型的 在第一个System.out.println(“123”);中"123 "是 String类型的 那为什么会输出一样的结果呢? JVM会自动将这个int类型包装成Integer类型,然后调用其toString方法 "123"是String类型,这里也是会自动调用它的toString方法
所以结果是一样的 123是int类型,它是JAVA的基础数据类型,不能用.来调用方法,它也不是对象。 如果非要写,可以:Integer.valueOf(123).toString(); 在System.out.println(Object obj);的时候..参数是一个对象,如果是基本数据类型,JVM会自动装箱。然后会自动调用该对象的toString()方法 每个类都有toString()方法,如果你没写,会默认继承自Object类的toString方法
posted on 2009-09-08 11:00 幻樱释 阅读(178) 评论(2) 编辑 收藏
这里并没有自动装箱 这里调用的是两个不同的方法,不同类型参数的重载而已 System.out.println(int arg0) System.out.println(String arg0) 事实上System.out.println() 对所有基本类型都进行了重载 自动装箱与拆箱是JDK 1.5后才有的特性 而你在JDK1.4 及之前版本下就可以直接使用 System.out.println(123); 这样的语句,可见,并没有自动装箱成Integer对象 回复 更多评论
谢谢您的指点 回复 更多评论
Powered by: BlogJava Copyright © 幻樱释