当前位置:首页>开发>正文

java中字符串什么时候创建,什么时候被垃圾回收器回收 Java中垃圾回收有什么目的什么时候进行垃圾回收

2024-01-10 12:10:14 互联网 未知 开发

 java中字符串什么时候创建,什么时候被垃圾回收器回收 Java中垃圾回收有什么目的什么时候进行垃圾回收

java中字符串什么时候创建,什么时候被垃圾回收器回收

字符串数组 String [] strArray = new String [20] 不过推荐用ArrayListstrArray = new ArrayList () 比较灵活

Java中垃圾回收有什么目的?什么时候进行垃圾回收?

垃圾回收器的作用是查找和回收(清理)无用的对象。以便让JVM更有效的使用内存。
垃圾回收器的运行时间是不确定的,由JVM决定,在运行时是间歇执行的。虽然可以通过System.gc()来强制回收垃圾,但是这个命令下达后无法保证JVM会立即响应执行,但经验表明,下达命令后,会在短期内执行的请求。JVM通常会感到内存紧缺时候去执行垃圾回收操作。
垃圾回收过于频繁会导致性能下降,过于稀疏会导致内存紧缺。这个JVM会将其控制到最好,不用程序员担心。但有些程序在短期会吃掉大量内存,而这些恐怖的对象很快使用结束了,这时候也许有必要强制下达一条垃圾回命令,这是很有必要的,以便有更多可用的物理内存。

Java 的垃圾回收如何判断哪个对象可以被回收

java对象符合以下条件便会被垃圾回收:
1.所有实例都没有活动线程访问。
2.没有被其他任何实例访问的循环引用实例。 
3.Java 中有不同的引用类型。判断实例是否符合垃圾收集的条件都依赖于它的引用类型。


在编译过程中作为一种优化技术,Java 编译器能选择给实例赋 null 值,从而标记实例为可回收。

class Animal {

public static void main(String[] args) {

Animal lion = new Animal()

System.out.println("Main is completed.")

}

protected void finalize() {

System.out.println("Rest in Peace!")

}

}

Java里的对象在程序结束后会被立刻清除吗?

虚拟机销毁对象是随机的,不可预测的,没有办法强制销毁;
System.gc()只是通知虚拟机可以进行销毁了,销不销毁都是看虚拟机,它自己并不会做什么清除的工作;
fianlise()方法只是当虚拟机在清除对象之前调用,人为控制不了;
总之一句话,销毁对象完全由虚拟机控制,程序员能做的就是通知虚拟机可以销毁了,但不能控制。

最新文章

随便看看