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

u010179812 2013-12-12 07:05:14
如题,得出的结果是一样的。

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);
}
}

...全文
552 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010179812 2013-12-13
  • 打赏
  • 举报
回复
谢谢大家,3楼的解释非常直观且清晰。
raistlic 2013-12-13
  • 打赏
  • 举报
回复
引用 3 楼 waynexuan 的回复:

	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
jywm017 2013-12-12
  • 打赏
  • 举报
回复
第一个进行了自动装箱操作,跟第二个是一样的,所以两个都一样
WayneXuan 2013-12-12
  • 打赏
  • 举报
回复

	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);//普通的堆中的对象
麦田 2013-12-12
  • 打赏
  • 举报
回复
和String直接赋值和new String是一个道理 new的话 浪费内存
  • 打赏
  • 举报
回复
一个是值引用,那就是Integer,赋的是值。而一个是对象引用,他赋的是一个地址。

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧