BlogJava-千思http://www.blogjava.net/qin09872006/zh-cnSun, 11 May 2025 08:04:47 GMTSun, 11 May 2025 08:04:47 GMT60一个Java数据类型的问题http://www.blogjava.net/qin09872006/archive/2009/09/08/294265.html幻樱释幻樱释Tue, 08 Sep 2009 03:00:00 GMThttp://www.blogjava.net/qin09872006/archive/2009/09/08/294265.htmlhttp://www.blogjava.net/qin09872006/comments/294265.htmlhttp://www.blogjava.net/qin09872006/archive/2009/09/08/294265.html#Feedback2http://www.blogjava.net/qin09872006/comments/commentRss/294265.htmlhttp://www.blogjava.net/qin09872006/services/trackbacks/294265.htmlclass Demo
{
    
public static void main(String [] args)
    
{
        System.out.println(
123);
        System.out.println(
"123");
    }

}
  上面的打印结果是一样的哦。

在第一个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方法



幻樱释 2009-09-08 11:00 发表评论
]]>