List list1 = new ArrayList();
List list2 = list1;
list1.append("nice");
System.out.println(list2);
竟然能打印出append添加的数据
我最开始纳闷的是list1先赋值给list2,然后list1再添加数据,为啥list2还会修改?
其实这么理解是有问题的, List list2 = list1; 其实传递的是实现类,而不是接口本身。
就像是u盘连接电脑,传递的是内部的文件,而不是外部的硬件。
接口只是一种对外提供访问的方式而已。
感觉用比喻的方式来理解一些原理可以避免死记硬背。
本文通过一个简单的Java代码示例,解释了List接口在赋值和数据共享时的工作机制,强调了List作为引用类型而非值类型的特点,帮助读者深入理解Java内存管理和对象引用的概念。
1万+

被折叠的 条评论
为什么被折叠?



