spring容器中的对象会被垃圾回收吗?如果不会请解释一下,谢谢。
在说能否被回收之前,需要先知道什么对象是垃圾,垃圾的如何被回收?
垃圾的确定是根据可达性分析查找出来的。也就是从GC Roots中能一下往下检索到的对象都不属于垃圾。所以最关键的是分析出哪些对象可以作为GC的Root。然后再看Spring的容器对象属不属于GC Roots中的某一类,就知道是否能被回收。
既然容器都不会回收了,那么容器中的对象还会回收吗?
补充小知识:哪些对象可以作为GC Roots的根对象呢:
1.虚拟机栈(栈帧中的局部变量去,也叫做局部变量表)中的引用的对象。
2.方法区中的类静态属性引用的对象。
3.方法区中常量引用的对象。
4.本地方法栈中JNI(Native)引用的对象。
在说能否被回收之前,需要先知道什么对象是垃圾,垃圾的如何被回收?
垃圾的确定是根据可达性分析查找出来的。也就是从GC Roots中能一下往下检索到的对象都不属于垃圾。所以最关键的是分析出哪些对象可以作为GC的Root。然后再看Spring的容器对象属不属于GC Roots中的某一类,就知道是否能被回收。
既然容器都不会回收了,那么容器中的对象还会回收吗?
补充小知识:哪些对象可以作为GC Roots的根对象呢:
1.虚拟机栈(栈帧中的局部变量去,也叫做局部变量表)中的引用的对象。
2.方法区中的类静态属性引用的对象。
3.方法区中常量引用的对象。
4.本地方法栈中JNI(Native)引用的对象。