标题: 黑马训练营入学考试,求解 [打印本页] 作者: anhuicuihao 时间: 2015-4-23 00:29 标题: 黑马训练营入学考试,求解 编译并运行以下代码将发生什么?( ) class MyClass { int x;
MyClass(int i) { x = i; }
public static void main(String args[]) {
MyClass m1 = new MyClass(100);
MyClass m2 = new MyClass(100);
if (m1.equals(m2)) {
System.out.println("Both are equal"); }
else { System.out.println("Both are not equal"); }
}
} A. 代码编译时报出错误提示信息“equals() 方法未定义” B. 编译通过,抛出运行期异常. C. 输出Both are equal. D. 输出Both are not equal 作者: godrick007 时间: 2015-4-23 08:25
答案选d
Both are not equal
类是引用型数据变量,在栈内存中存储的是对象的地址值,而不是具体的数值。
在这个程序中,虽然m1和m2都把100这个int类型的值传给了MyClass这个类的构造函数,但是
在if语句中比较的并不是两个int型的100,而是m1 和 m2的地址值。
在
MyClass m1 = new MyClass(100);
MyClass m2 = new MyClass(100);