面试:Arrays.asList

首先运行以下代码片,得到结果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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值