例:
session.setAttribute("list",list1);
seeeion.setAttribute("list",list2);用session.getAttribute("list");得到的肯定是list2,
我的问题是那么list1是被list2覆盖了吗?
list1在session中还存在吗?
session.setAttribute("list",list1);
seeeion.setAttribute("list",list2);用session.getAttribute("list");得到的肯定是list2,
我的问题是那么list1是被list2覆盖了吗?
list1在session中还存在吗?
平时都在用session.put("",object);就说一下我知道的吧!
session存储数据的方式类似于:Map的key-value存储方式,key 是唯一的...
而我们通过put方法所做的存储也就是在覆盖session中的key和value..
seeeion.setAttribute("list",list2);会将这个引用指向list2,而list1仍然存在于内存中,如果还有别的引用指向list1,则list1会依然存在下去,如果没有了引用指向list1,则过了相应时间后,就会被垃圾收集器收集掉;
收集掉之后,才确实从内存中消失;
seeeion.setAttribute("list",list2);会将这个引用指向list2,session.getAttribute("list")得到的是list2;
而list1仍然存在于内存中,如果还有别的引用指向list1,则list1会依然存在下去,如果没有了引用指向list1,则过了相应时间后,就会被垃圾收集器收集掉;
收集掉之后,才确实从内存中消失;
垃圾收集器利用有向图查看 list1 是否有连接。无。断开。
貌似是的