当前位置: 技术问答>java相关
疑惑??????
来源: 互联网 发布时间:2015-04-24
本文导语: public class NumberTest{ public static void main(String[] args) { Integer n1 = new Integer(1); Integer n2 = new Integer(1); System.out.println(n1 == n2); System.out.println(n1 != n2); } } 上述程序的输出结果是 false true ...
public class NumberTest{
public static void main(String[] args) {
Integer n1 = new Integer(1);
Integer n2 = new Integer(1);
System.out.println(n1 == n2);
System.out.println(n1 != n2);
}
}
上述程序的输出结果是
false
true
public class NumberTest{
public static void main(String[] args) {
int n1 = 1;
int n2 = 1;
System.out.println(n1 == n2);
System.out.println(n1 != n2);
}
}
上述程序的输出结果是
true
fasle
为什末两次的输出结果不一样呢?
public static void main(String[] args) {
Integer n1 = new Integer(1);
Integer n2 = new Integer(1);
System.out.println(n1 == n2);
System.out.println(n1 != n2);
}
}
上述程序的输出结果是
false
true
public class NumberTest{
public static void main(String[] args) {
int n1 = 1;
int n2 = 1;
System.out.println(n1 == n2);
System.out.println(n1 != n2);
}
}
上述程序的输出结果是
true
fasle
为什末两次的输出结果不一样呢?
|
第一个程序中n1和n2只是句柄,不是具体的对象。尽管对象的内容相同,句柄却是不同的,而==和!=比较的正好就是对象句柄。所以输出结果实际上先是false,再是true
第二个程序中,n1、n2不是句柄,它们是自动变量。用句柄指向的对象被置于内存堆中,自动变量置于堆栈中,能够更高效地存取。这些自动变量的类型我们通常形象的称为“主类型”。
第二个程序中,n1、n2不是句柄,它们是自动变量。用句柄指向的对象被置于内存堆中,自动变量置于堆栈中,能够更高效地存取。这些自动变量的类型我们通常形象的称为“主类型”。
|
对Integer n1 = new Integer(1),n1是一个对象的实例。
而int n1 = 1则是定义了一个整数。
现在明白为什么不一样了吧。
而int n1 = 1则是定义了一个整数。
现在明白为什么不一样了吧。
|
因为一个是Integer,==比较的是两个对象的是否相等,不是它的内容而是是否指向同一个对象
|
Integer是个对象,==两端的对象比较表示比较两个对象的地址
那么两个对象地址当然不会相等
int用==比较就是比较值
那么两个对象地址当然不会相等
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)));
}
}
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)));
}
}
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。