看看这样写结果
ArrayList treeList = new ArrayList();
ArrayList syList = new ArrayList();treeList=syList;我想问 这样之后 syList中的值是否会把treeList中的值给覆盖掉
想好再说 别让我搞笑了 我自己感觉是可以的呵呵
ArrayList treeList = new ArrayList();
ArrayList syList = new ArrayList();treeList=syList;我想问 这样之后 syList中的值是否会把treeList中的值给覆盖掉
想好再说 别让我搞笑了 我自己感觉是可以的呵呵
解决方案 »
- mysql 查询性能问题
- Ibatis+oracle 特殊符号导致ibatis报错!如何解决
- 想成为java 方面的大牛,哪些书需要研究? 哪些技术需要重点掌握? 请各位都发表下意见吧
- 有关struts问题
- 求助!如何在tomacat下运行servlet?
- 紧急求救:EJB问题,各位帮帮忙,我急死了!!!
- (给200分,不够我再加)我用hibernate时,产生错误:Failed to lazily initialize a collection
- web services遇到乱码问题,谁来解决
- java如何执行远程服务器上的.sh文件
- maven项目中创建的servlet不能运行
- Struts2 Action 执行两次的原因
- 关于js length的问题
treeList开始new的ArrayList,没有引用(C++中称指针),等待JVM垃圾回收。
ArrayList treeList = new ArrayList();
ArrayList syList = new ArrayList();treeList=syList;楼主,首先treeList、syList是两个引用,他们分别指向一个集合对象,当treeList=syList时,仅仅是把syList(引用)的内存地址赋给treeList,而对于两个集合对象的值没有任何影响,就这3行代码来说,会导致treeList所指向的对象成为垃圾被GC处理掉
Object a = new Object();
Object b = new Object();b = a; //这个时候 b原来指向的对象如果没有其他的引用标识会被JVM垃圾清理机制清理掉,而不是你所说的被覆盖,只是单纯的a指向了b原来指向的对象而已你要知道a和b不代表对象,只是一个指向对象的标示符号打个比方,你有一张到成都的火车票,这张火车票并不代表成都b = a这个操作就好像把你手中的火车票的目的地从成都改成了北京而北京和成都都就在那里,和你手中的火车票指向哪里没有关系但是如果没有一个人的火车票是到北京的,那JVM就认为这个玩意已经没有意义可以被清理了