日期:2014-05-20  浏览次数:20822 次

Integer 直接给变量赋值与用new赋值有什么不同?
如题,得出的结果是一样的。

import java.util.*;

public class Test
{
public static void main(String [] args)
{
         
        Integer x = 10;
        Integer y = new Integer(10);
        
        System.out.println(x);
        System.out.println(y);
}
}


------解决方案--------------------
一个是值引用,那就是Integer,赋的是值。而一个是对象引用,他赋的是一个地址。
------解决方案--------------------
和String直接赋值和new String是一个道理
new的话 浪费内存
------解决方案--------------------

public static void main(String[] args) {
Integer i1=10;
Integer i2=10;
Integer i3=new Integer(10);
Integer i4=128;
Integer i5=128;
System.out.println(i1==i2);//true
System.out.println(i1==i3);//false
System.out.println(i4==i5);//false
}

1楼什么都不懂,不要看
Integer x = 10;//自动装箱,如果在-128到127之间,则值存在常量池中
Integer y = new Integer(10);//普通的堆中的对象

------解决方案--------------------
第一个进行了自动装箱操作,跟第二个是一样的,所以两个都一样
------解决方案--------------------
引用:

public static void main(String[] args) {
Integer i1=10;
Integer i2=10;
Integer i3=new Integer(10);
Integer i4=128;
Integer i5=128;
System.out.println(i1==i2);//true
System.out.println(i1==i3);//false
System.out.println(i4==i5);//false
}

1楼什么都不懂,不要看
Integer x = 10;//自动装箱,如果在-128到127之间,则值存在常量池中
Integer y = new Integer(10);//普通的堆中的对象


+1