给出下面的类,返回true的表达式是( )
public class Sample{
long length;
public Sample(long l){
length = l;
}
public static void main(String arg[]){
Sample a, b, c;
a = new Sample(21L);
b= new Sample(21L);
c= b; long m = 21L; }}
A. a==b a2; B. b== c; C. m == a; D. a.equals(m);
b
选B,a 和 b 都在堆中创建了新的对象,他们的步骤都可以拆分成两步,
1 ---> long m = 21L
2----> a = new Sample(m)
因此 A 和 C 错误,D中 a是对象,而 m 是基本数据类型,一个在堆中,一个在栈中,必然不为true,