JAVA诡异的代码

 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) ) ;  
		}

为什么第一个循环可以输出来不暴挫,而第二个循环就会包转行异常呢?

你可能感兴趣的:(java,list)