51Testing软件测试论坛
标题:
新手求解答。
[打印本页]
作者:
193高阳
时间:
2018-9-20 18:12
标题:
新手求解答。
1. public class equivalence {
public static void main (string 【】args){
Integer n1=new Integer(47);
Integer n2=new Integer(47);
System.out.printIn(n1.equals(n2);}
} //true
2. class Value {
int i;}
public class equivalence {
public static void main (string 【】args){
Value v1=new Value();
Value v2=new Value();
v1.i=v2.i=100;
System.out.printIn(n1.equals(n2);}
}//false
为什么第一个是T到了第二个就变成F了呢?求大佬解答。
作者:
lsekfe
时间:
2018-9-21 11:25
你环境 步骤都没写怎么让人解答?
作者:
puchonghui
时间:
2018-9-21 12:09
这是java么?
java里面非基本数据类型,使用==比较的是地址;
equals默认比较的是地址,重写过equals方法的类比较的是内容。表问我哪些类重写过,自己去看jdk的源代码;
value类是自定义类,并且没有重写过equals方法,所以会调用Object.equals方法
public boolean equals(Object obj) {
return (this == obj);
}
顺便说一句,贴代码之前自己编译一下,这种代码目测就是编译通不过的。。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2