99问答网
所有问题
Java 垃圾回收的问题,请教
在看thinking in java 时, 看到这样一句话:“java 里的对象并非总是被垃圾回收的”。感觉不好理解,不是有垃圾回收机制吗,这个机制会自动的运行,那为什么要说垃圾对象不一定会被回收?
举报该问题
推荐答案 2009-02-20
这个说法就是说java的回收机制是不可靠的,基本就是java感觉到内存不足时才来收垃圾的。如果说你一个小程序,在巨大内存空间运行,有可能当程序结束的时候,垃圾还没被回收。个人感觉在大多数时候还是可以相信垃圾回收机制的,但是你也要尽量优化你的算法,因为垃圾回收的启动本身就是个巨耗内存的玩意,所以你最好也不要手动调用gc方法来强行垃圾回收,那样只会更耗费内存。
java的回收机制有时候会出现当你内存可用空间多的时候反而感觉卡,而内存少的时候反而感觉不卡了,这就是垃圾回收的时候要耗费很大的系统资源,当他启动后可用内存是多了,但是资源还没放开。而可用资源少的时候,就是java认为他现在这点空间已经够他用了,他就不回收了,而且事实上你的程序的确也不需要更多内存,他就不会进行垃圾回收,就没有额外的系统开销,就反而就不卡了。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/O7Xzttjj.html
其他回答
第1个回答 2009-02-20
简单的说就是在堆中分配的对象(如,类的成员变量),不会被回收;在栈中分配的对象(如,局部变量)就会被回收。
第2个回答 2009-02-20
java的垃圾回收基本等于没有!
必须手动释放内存!
就是这个意思,因为垃圾回收机制不完善!
第3个回答 2009-02-20
好像java有自动回收机制吧
第4个回答 2009-02-20
是的,
java 圾回收是在你的内存被运行程序对象垃圾占用了很多很多,java 圾回收机制才回去运行它的回收程序.因这这个回收程序的运行是很占内存很要时间的.所以一般你的程序还可以运行时它是不会去浪费资源去回收垃圾的.不知你有没有在玩java做的游戏,在你完了很久到,游戏就突然停了一下,或是慢了.这就是java在回收垃圾!
第5个回答 2019-10-01
system.gc();并不保证立刻执行垃圾回收,jvm只会根据当前内存使用情况来决定是否真正执行对象的回收,所以有时候调用了system.gc();后也不一定会把new
webbank(true)出来的对象回收掉,当然也就不会调用finalize方法了,至于bank1和bank2这2个对象在main
thread结束之前是都不会被回收的,因为main
thread保留了他们的引用。
1
2
下一页
相似回答
Java 的垃圾回收
机制机制如何优化?
答:
Java 的垃圾回收
机制可以通过以下方式进行优化:1. 调整堆大小:通过设置 -Xmx 和 -Xms 参数来调整堆的大小,以便更好地适应应用程序的需求。2. 选择合适的垃圾回收器:Java 提供了多种垃圾回收器,如串行收集器、并行收集器、并发标记清除收集器等。根据应用程序的特点和需求选择合适的垃圾回收器。3....
Java
垃圾回收的问题,请教
答:
这个说法就是说
java的
回收机制是不可靠的,基本就是java感觉到内存不足时才来收垃圾的。如果说你一个小程序,在巨大内存空间运行,有可能当程序结束的时候,垃圾还没被回收。个人感觉在大多数时候还是可以相信垃圾回收机制的,但是你也要尽量优化你的算法,因为
垃圾回收的
启动本身就是个巨耗内存的玩意,...
求教一个
java
关于
垃圾回收的问题
答:
(1) GC是
垃圾
收集的意思(Gabage Collection),内存处理是编程人员容易出现
问题
的地方,忘记或者错误的内存
回收
会导致程序或系统的不稳定甚至崩溃
,Java
提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。(2) 对于GC来说,当程序员创建...
如何通知
java
虚拟机进行
垃圾回收
?以及垃圾回收机制的原理是什么_百度知 ...
答:
java的垃圾回收
会由虚拟机自动进行。因为各版本虚拟机的实现不一样,具体回收时点会有一定的不同,但大体上在对内存不足时,是一定会尝试进行一次
回收的
。如果回收后,内存还是不够,则会报出经典的OutofMemory异常。用户可以调用System.gc()进行强制的内存回收,但和上面一样,回收完后不一定就保证能...
java
小
问题
关于实例对象内存
回收
。。
答:
1、走完这个方法,这个对象确实变成了垃圾,但是不会立即被收回。只有当垃圾堆积到一定的程度时,虚拟机才会自动
回收垃圾
。2、是每次都实例,但不是每次都回收。不会有
问题
。3、在
JAVA
中,不需要特意去管这个垃圾回收机制,因为
垃圾回收的
自动性。即使你调用System.gc()方法,也只是建议虚拟机回收内存,...
java垃圾回收的问题
答:
java
GC是这样的,当一个对象没有引用指向它时,就成为了
垃圾,
就会被GC
回收
。在第四行中,对象new StringBuffer("HI");又多了一个名字sf_arr[0],所以当sf=null并不能保证不再有引用指向它。举个例子:小明这个人,如果没有名字就会死掉,现在我给小明再取个名字小华,那么他就有两个名字了,...
Java垃圾回收
怎么理解?
答:
当然随着垃圾收集算法的不断改进以及软硬件运行效率的不断提升,这些
问题
都可以迎刃而解。 垃圾收集的算法分析
Java
语言规范没有明确地说明JVM使用哪种
垃圾回收
算法,但是任何一种垃圾收集算法一般要做2件基本的事情:(1)发现无用信息对象;(2)回收被无用对象占用的内存空间,使该空间可被程序再次使用。 大多数垃圾回收...
java
有哪些
垃圾回收
算法?
答:
Java
中常用的
垃圾
收集算法:(1).标记-清除算法:最基础的垃圾收集算法,算法分为“标记”和“清除”两个阶段:首先标记出所有需要
回收的
对象,在标记完成之后统一回收掉所有被标记的对象。标记-清除算法的缺点有两个:首先,效率
问题,
标记和清除效率都不高。其次,标记清除之后会产生大量的不连续的内存...
java
怎么对一个对象强制
垃圾回收
答:
一、
Java
提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。(1).对象不一定会被回收。(2).垃圾回收不是析构函数。(3).垃圾回收只与内存有关。(4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行
垃圾回收的
。二、垃圾回收器:1...
大家正在搜
下面关于java的垃圾回收机制
java垃圾回收的几个区
java垃圾回收的缺点
Java垃圾回收过程
Java垃圾回收机制
Java强制垃圾回收
java 垃圾回收器
java如何进行垃圾回收
java什么时候垃圾回收
相关问题
java垃圾回收问题?
java垃圾回收的问题
求教一个java关于垃圾回收的问题
问一个java垃圾回收的问题
java 垃圾回收的一些问题
java的垃圾回收问题
JAVA中垃圾收集的问题(会JAVA的进)
java 问题,如下,这题怎么做啊?垃圾回收的,不太懂