Java 对于垃圾收集,如果我们在方法末尾使用后将对象设为null并清除收集,这是一个好主意吗
对于数据加载,我使用groovy脚本。在这里我使用多线程概念。但当我在某个时间间隔后开始数据加载时,数据加载停止,JVM开始进行垃圾收集。 我的问题是,在方法末尾使用后,在方法中将对象设置为null和clear集合是否是一个好主意 其他最好的方法也会出现Java 对于垃圾收集,如果我们在方法末尾使用后将对象设为null并清除收集,这是一个好主意吗,java,multithreading,groovy,garbage-collection,jvm,Java,Multithreading,Groovy,Garbage Collection,Jvm,对于数据加载,我使用groovy脚本。在这里我使用多线程概念。但当我在某个时间间隔后开始数据加载时,数据加载停止,JVM开始进行垃圾收集。 我的问题是,在方法末尾使用后,在方法中将对象设置为null和clear集合是否是一个好主意 其他最好的方法也会出现 提前感谢。这对垃圾收集没有影响。一旦您的方法结束并且不再存在对对象/集合的引用,GC将能够清除它们。如果对象/集合变得不可访问,因为您取消了本地保存上次引用的引用或方法,并且该引用或方法已完成,则不会产生任何影响。这对垃圾收集没有影响。一旦您的
提前感谢。这对垃圾收集没有影响。一旦您的方法结束并且不再存在对对象/集合的引用,GC将能够清除它们。如果对象/集合变得不可访问,因为您取消了本地保存上次引用的引用或方法,并且该引用或方法已完成,则不会产生任何影响。这对垃圾收集没有影响。一旦您的方法结束并且不再存在对对象/集合的引用,GC将能够清除它们。如果对象/集合变得不可访问,这没有什么区别,因为您取消了本地保存上次引用的引用或方法已完成。这取决于您用于引用对象的变量类型
- 如果该变量是该方法的局部变量,并且没有对该对象的其他引用,那么将该变量设置为null并没有帮助,因为它无论如何都会超出范围
- 如果变量是类的一个成员,并且您运行该方法的对象将停留一段时间,那么如果您已经使用完该对象,则将该变量调零将产生不同;因为变量仍然在类中的代码范围内。如果存在可以通过某种方式访问的对象引用,则不会对该对象进行垃圾收集
- 如果该变量是该方法的局部变量,并且没有对该对象的其他引用,那么将该变量设置为null并没有帮助,因为它无论如何都会超出范围
- 如果变量是类的一个成员,并且您运行该方法的对象将停留一段时间,那么如果您已经使用完该对象,则将该变量调零将产生不同;因为变量仍然在类中的代码范围内。如果存在可以通过某种方式访问的对象引用,则不会对该对象进行垃圾收集