public class WoDeGongJu_qq_qun_18 {
public static void main(String[] args) {
Integer i1 = 100;
Integer i2 = 100;
if (i1 == i2)
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");
}
}public class WoDeGongJu_qq_qun_19 {
public static void main(String[] args) {
Integer i1 = 200;
Integer i2 = 200;
if (i1 == i2)
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");
}
}兩個程序運行什麼結果?一樣嗎?為什麼?加入:
我的工具-Java[18] 群號33323986,还有12个名额
我的工具-Java[19] 群號38612890,还有17个名额
共同研究JAVA,討論問題說明:
都是140人上線的群
public static void main(String[] args) {
Integer i1 = 100;
Integer i2 = 100;
if (i1 == i2)
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");
}
}public class WoDeGongJu_qq_qun_19 {
public static void main(String[] args) {
Integer i1 = 200;
Integer i2 = 200;
if (i1 == i2)
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");
}
}兩個程序運行什麼結果?一樣嗎?為什麼?加入:
我的工具-Java[18] 群號33323986,还有12个名额
我的工具-Java[19] 群號38612890,还有17个名额
共同研究JAVA,討論問題說明:
都是140人上線的群
因为==是进行值运算另外,你的两个程序确定没错?
我怎么看就是一样的
java对于Integer在-128-127之间的数据会直接数据引用。所以赋值100的两个对象其实就是一个对象。而200超出了127。这个时候java会new一个新的对象。所以在==判断的时候就会是false.
come from thinking in java .up
up
up
you
http://www.blogjava.net/zhaochengming/archive/2007/08/13/136468.html
up up学习
因为-128到127之间的Integer是有缓存的。而其它的都会重新new一个出来