面试:Arrays.asList

来源:互联网 发布:js 写cookie 编辑:程序博客网 时间:2024/05/18 00:43

首先运行以下代码片,得到结果32

String[] strArray = new String[]{"1", "2"};List<String> strList = Arrays.asList(strArray);strArray[0] = "3";for (String s : strList) {    System.out.print(s);}

我初次看到这段代码片时,想当然地认为结果应该是12无疑。然而。。。现实总是残酷的。
究其原因:
Arrays.asList(strArray)返回的是Arrays.ArrayList,这个类的带参构造里面,直接把传入的数组赋给内部成员数组,因此以上代码片中的strList中的值首地址的引用,就是strArray,相当于strList = strArray,所以改了值,但是地址没变。

0 0
原创粉丝点击