JAVA题库:传递引用的经典Java认证考试

文章作者 100test 发表时间 2009:07:08 03:18:38
来源 100Test.Com百考试题网


下列程序在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认证模拟题及分析3Java认证考试
Java认证模拟题及分析2Java认证考试
Java认证模拟题及分析1Java认证考试
JAVA题:定义People及其对象Java认证考试
JAVA题库:传递引用的经典Java认证考试
排序和金额转换·两道JAVA编程题及答案Java认证考试
JAVA题库:5道JAVA题Java认证考试
JAVA题库:26道基础知识题(2)Java认证考试
JAVA题库:26道基础知识题(3)Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛