1、下列选项中结果为true的有哪些?
public class Sample {
long length;
public Sample(long l) {
length = l;
}
public static void main(String[] args) {
Sample st1,st2,st3;
st1 = new Sample(21L);
st2 = new Sample(21L);
st3 = st2;
}
}
A:st2 == st3 B:st2.equals(st3) C:st3.equals(st2) D:st1 != st2
解析:st1、st2都是通过new的方式创建出来的对象,有各自的内存区域,所以这两个对象的引用是不同的。
st3 通过st2直接赋值,对象是引用传递,即,st3拿到的是st2的引用地址,所以st2和st3指向的是同一个内存区域。
//直接输出
System.out.println("st2 == st3 :" + (st2 == st3));
System.out.println("st3.equals(st2) :" + (st3.equals(st2)));
System.out.println("st2.equals(st3) :" + (st2.equals(st3)));
System.out.println("st1.equals(st3) :" + (s