以下 Java 代码的正确输出是__?

int i=0;
Integer j = new integer(0);
System.out.println(i == j);
System.out.println(j.equals(i));
949 次浏览
  • A、true, false
  • B、对于不同环境结果不同
  • C、true, true
  • D、false, true
int类型是八种基本数据类型之一。Integer是int的包装类,因此变量j是一个对象。需要注意的是,JDK1.5及以上版本支持基本数据类型与包装类的直接转换,如: Integer a = 10; //自动装箱 int b = a; //自动拆箱 因此当执行环境的JDK版本在1.5及其以上时,i==j语句会自动拆箱,结果为true,j.equals(i)语句会自动装箱,结果也为 true。当执行环境的JDK版本在1.5以下时,i==j语句会报错,错误信息为:Incompatible operand types int and Integer,即基本数据类型和对象之间不能进行==操作。语句j.equals(i)也会报错,因为equals(Object o)方法要求实参必须是一个对象。
挑战成功
2年前
挑战失败
2年前