疑惑?????? 因为一个是Integer,==比较的是两个对象的是否相等,不是它的内容而是是否指向同一个对象 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Integer是个对象,==两端的对象比较表示比较两个对象的地址那么两个对象地址当然不会相等int用==比较就是比较值 public class NumberTest{ public static void main(String[] args) { Integer n1 = new Integer(1); Integer n2 = new Integer(1); System.out.println(n1.equals(n2)); System.out.println(!(n1.equals(n2))); }} 第一个程序中n1和n2只是句柄,不是具体的对象。尽管对象的内容相同,句柄却是不同的,而==和!=比较的正好就是对象句柄。所以输出结果实际上先是false,再是true第二个程序中,n1、n2不是句柄,它们是自动变量。用句柄指向的对象被置于内存堆中,自动变量置于堆栈中,能够更高效地存取。这些自动变量的类型我们通常形象的称为“主类型”。 对Integer n1 = new Integer(1),n1是一个对象的实例。而int n1 = 1则是定义了一个整数。现在明白为什么不一样了吧。 jtidy把html转为DOM树,并删除 html 特定标记 谁能给我个javamail imap协议的访问多个文件夹的例子? 关于泛型问题--类型转换异常 请问有用过qt jambi的吗 请熟悉java跟c语言的进来,挺急!! Linux下Java中怎样调用另一个程序和输入参数 请高手指点一下,谢谢 关于<<,>>运算付的问题 请问如何查看以前的老帖子 awt的Applet怎么不能显示菜单? Weblogic的设置问题No.1 又一个入门级的问题:关于在Graphics中输出文字
那么两个对象地址当然不会相等
int用==比较就是比较值
public static void main(String[] args) {
Integer n1 = new Integer(1);
Integer n2 = new Integer(1);
System.out.println(n1.equals(n2));
System.out.println(!(n1.equals(n2)));
}
}
而int n1 = 1则是定义了一个整数。
现在明白为什么不一样了吧。