千思

2009年9月8日 #

一个Java数据类型的问题

class 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方法

posted @ 2009-09-08 11:00 幻樱释 阅读(180) | 评论 (2)编辑 收藏