当前位置:

JAVA认证《专业语言》编程模拟题传递引用

发表时间:2015/4/13 11:28:20 来源:互联网 点击关注微信:关注中大网校微信
关注公众号

下列程序在1处是否会有异常,如果没有,输出是什么?是否会运行到2处,如果会,输出是什么?为什么会有这样的结果?

import java.util.ArrayList;

import java.util.List;

public class TestClass {

public static void main(String args[]) {

List list = new ArrayList();

test2(list);

System.out.println(list.size()); // 1处

test3(list);

System.out.println(list.size()); // 2处

}

public static void test2(List list) {

list = null;

}

public static void test3(List list) {

list.add(“aaaa“);

}

}

plumeChen:

不会出错的。结果是0,1。

因为test2(list)传得是list的引用,我理解成指针置的副本,list=null;只是把那个传入的值设置为null,不改变原来list的指针和内容。test3(list)传入的一样,但是执行了list.add()由于传入指针值的副本也指向原来的那个list的地址,所以原来的那个list的内容就改变了,size变成了1了。

编辑推荐:

JAVA认证考试报考指南 / 更多JAVA考试模拟试题

(责任编辑:xy)

2页,当前第1页  第一页  前一页  下一页
最近更新 考试动态 更多>

考试科目