全部评论

刚看了一下源码,实属浅拷贝,而你被误导的主要原因是理解错了浅拷贝的含义。ArrayList是否浅拷贝的判断依据是拷贝的数组,它的element是否指向原数组,判断方式应该是clone[0]引用指向的地址是否等于原arr[0]的地址,而不是将clone[0]指向另一个元素,让后判断原arr[0]变了没。想要通过变化来判断是否深浅拷贝,应该是clone[0].方法或属性改变对象值,然后看原arr【0】指向对象的属性值是否变化。
这样吧
public class test {
public static void main(String[] args) {
ArrayList<person> list = new ArrayList<>(2);
list.add(new person(1));
person person1 = list.get(0);
list.add(new person(2));
list.add(new person(3));
person person2 = list.get(0);
System.out.println(person1==person2);
}
static class person{
private Integer age;
person(Integer age) { this.age=age;}
}
}
咋可能是深拷贝
相关推荐
点赞 评论 收藏
分享
02-23 16:52
华南理工大学 自然语言处理 点赞 评论 收藏
分享
03-25 18:24
广东海洋大学 前端工程师
smile丶snow:感觉可以加一些ai相关的内容吧。现在面试很少能逃掉这些问题。羡慕里面感觉缺少一个项目背景。比如第二个项目后台管理系统…你为什么要做这个后台管理系统呢?是为了解决什么问题。比如你管理一个商品列表的增加减少。需要一个背景吧。哦或者说你第一个电子书那个是c端的,你肯定需要一个管理系统吧,那就是第二个后台管理系统,但这两个难道不应该是一个项目吗?可以稍微包装一下,最起码让人看着不是玩具项目。个人观点。 点赞 评论 收藏
分享
