JAVA 怎么销毁变量
publicstaticvoidmain(String[]args){Stringoutput="这是要输出";System.out.println(output);//...
public static void main(String[] args) {
String output = "这是要输出";
System.out.println(output);
// 我想在这一行 销毁 output 这个变量
}
求教了 展开
String output = "这是要输出";
System.out.println(output);
// 我想在这一行 销毁 output 这个变量
}
求教了 展开
6个回答
展开全部
java对象销毁是有虚拟机控制的,你手动销毁可以,但是销毁时间还是由虚拟机决定。所以你实际要做的就是让变量不再被引用,而你这个output已经不再被引用,执行完了就会被回收。
看下面解释:
Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身
System.gc()
Runtime.getRuntime().gc()
上面的方法调用时用于显式通知JVM可以进行一次垃圾回收,但真正垃圾回收机制具体在什么时间点开始发生动作这同样是不可预料的,这和抢占式的线程在发生作用时的原理一样。
看下面解释:
Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身
System.gc()
Runtime.getRuntime().gc()
上面的方法调用时用于显式通知JVM可以进行一次垃圾回收,但真正垃圾回收机制具体在什么时间点开始发生动作这同样是不可预料的,这和抢占式的线程在发生作用时的原理一样。
展开全部
赋值为null 可以销毁;
因为java的GC垃圾回收机制是自动回收内存,即引用类型的变量的引用计数为0的时候自动回收,赋值为null等同于指针销毁。
因为java的GC垃圾回收机制是自动回收内存,即引用类型的变量的引用计数为0的时候自动回收,赋值为null等同于指针销毁。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
output = null;这样就可以了
追问
你确定这样可以?
追答
嗯 如果不想自己回收的话,java的垃圾回收机制也会回收,可以手动触发System.gc(),前提是output变量没有被引用,比如方法执行完成之后output就会被回收。
若是不明白,可以去看看那些没有自动回收机制的语言怎么回收的,比如C或C++。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
执行完println后,程序结束,jvm退出。自动销毁了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询