读书人

Integer 直接给变量赋值与用new赋值有

发布时间: 2013-12-13 13:57:17 作者: rapoo

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

读书人网 >J2SE开发

热点推荐