灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2854回复:0

JAVA诡异的代码

楼主#
更多 发布于:2012-09-08 09:46

List lst = new ArrayList<String>();
     lst.add( 1 );
     lst.add("Test004");
     List<Integer> ls = lst ;
     ls.add(2);  
     for (int i = 0; i < ls.size(); i++) {
         System.err.println(ls.get(i));
     }
     System.err.println( "----------" ) ;  
    List lst1 = new ArrayList<String>();
    lst1.add("Test004") ;  
    lst1.add(1);
    List<String> ls1 = lst1 ;  
    ls1.add("Test0041");  
    for (int i = 0; i < ls1.size(); i++) {
        System.err.println( ls1.get(i) ) ;  
    }
为什么第一个循环可以输出来不暴挫,而第二个循环就会包转行异常呢?


摘自 hfmbook的专栏


喜欢0 评分0
游客

返回顶部