1.以下Java程序运行的结果是: A
public class Tester{
public static void main(String[] args){
Integer var1=new Integer(1);
Integer var2=var1;
doSomething(var2);
System.out.print(var1.intValue());
System.out.print(var1==var2);
}
public static void doSomething(Integer integer){
integer=new Integer(2);
}
}
A. 1true
B. 2true
C. 1false
D. 2false
解析: Java中处理8种基本的数据类型用的是值传递,其他所有类型都用的是引用传递,由于这8种基本数据类型的包装类型都是不可变类,因此增加了对“按引用传递”的理解难度。其实还是很好理解的,题目中doSomething方法中new了一个对象,这是误导大家选择答案C的原因。其实,按引用传递的实质是将地址值的副本作为实参代替方法中的形参,因此var2与var1里面存储的地址值仍然是一样的,方法中操作的只是var2的一个副本值,并不影响var2本身存储的地址值,所以答案选择A。
2.下面关于变量及其范围的陈述哪些是不正确的(BD)
A. 实例变量是类的成员变量
B. 实例变量用关键字static声明
C. 在方法中定义的局部变量在该方法被执行时创建
D. 局部变量在使用前必须被初始化+
3.</