首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Integer 直接给变量赋值与用new赋值有什么不同?解决方案

2013-12-13 
Integer 直接给变量赋值与用new赋值有什么不同?如题,得出的结果是一样的。import java.util.*public class

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

热点排行