问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java垃圾回收器的问题

发布网友 发布时间:2024-09-29 15:35

我来回答

3个回答

热心网友 时间:2024-10-03 06:40

《java编程思想》上有句话87页“如果程序执行结束,并且垃圾回收器一直没有释放你创建的任何对象的存储空间,则随着程序的退出,那些资源也会全部交还给操作系统”

我话我的理解是:程序写得不好,有内存泄露现象,被标为使用状态的废弃对象,垃圾回收器无法将其回收。这部分对象占用的内存在程序退出时,也会被完全释放(程序运行时则不能释放,java程序的变量是在java虚拟机的堆上分配的)。

89页这句,没看到上文,有些不好解释。不过System.gc(),不等于程序结束时才调用。也有可能是虚拟机在运行期间根据一定的算法调用,也可能是你在代码中自行调用。但这话中“最终也能找出错误的Book对象”,没想明白,也许得要看上下文后才能分析。

热心网友 时间:2024-10-03 06:41

System.gc()不是强制解除程序或线程,而是同时JVM强制启动垃圾回收器,而且这只是通知,垃圾回收器还不一定执行,条件很苛刻。。。并且,真正在下一次垃圾收集的过程中,内存回收才开始追问我一直感觉上面两句话有矛盾,程序结束的标志是什么?我用的是myeclipse,点击运行,运行结果出来后程序不就运行结束了吗,既然程序结束了,按照第一句话那么存储资源就交还给了操作系统,资源也就回收了,那第二句话就说不通了,如果资源交给了操作系统回收了,那么执行一次操作系统回收一次,不管怎么重复执行存储空间也不会满,也就不会引起GC的执行了
何解??

追答你理解错误了,第一句中“则随着程序的退出,那些资源也会全部交还给操作系统”,这个里面说的资源指的是垃圾回收器本身占用的资源,这句话的意思就是说垃圾回收器没有被使用,程序结束时,垃圾回收器占用的资源被交还给操作系统,因为没使用占资源是种浪费,而且这个资源也不仅是内存,还有CPU等其他东西。。。。。
而第二句里面的解读是:垃圾回收器回收的是JVM中堆,和方法区的内存,这部分内存在你线程和程序结束时是不会自动还给系统的,这就是为什么C++编程对内存的操作必须有申请有释放,JVM垃圾回收器存在的意义。。。。。
还有程序结束的标记是该程序的线程全部执行完毕,并不是运行结果出来就代表着程序结束,后台还有些线程需要处理,这个你可以通过finalize()来试验看看。。。。。。

热心网友 时间:2024-10-03 06:41

03阿伟大碗
Java 的垃圾回收机制机制如何优化?

Java 的垃圾回收机制可以通过以下方式进行优化:1. 调整堆大小:通过设置 -Xmx 和 -Xms 参数来调整堆的大小,以便更好地适应应用程序的需求。2. 选择合适的垃圾回收器:Java 提供了多种垃圾回收器,如串行收集器、并行收集器、并发标记清除收集器等。根据应用程序的特点和需求选择合适的垃圾回收器。3....

求教一个java关于垃圾回收的问题

(1) GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。(2) 对于GC来说,当程序员创建...

Java 垃圾回收的问题,请教

java的回收机制有时候会出现当你内存可用空间多的时候反而感觉卡,而内存少的时候反而感觉不卡了,这就是垃圾回收的时候要耗费很大的系统资源,当他启动后可用内存是多了,但是资源还没放开。而可用资源少的时候,就是java认为他现在这点空间已经够他用了,他就不回收了,而且事实上你的程序的确也不需要...

java垃圾回收器的问题

我话我的理解是:程序写得不好,有内存泄露现象,被标为使用状态的废弃对象,垃圾回收器无法将其回收。这部分对象占用的内存在程序退出时,也会被完全释放(程序运行时则不能释放,java程序的变量是在java虚拟机的堆上分配的)。89页这句,没看到上文,有些不好解释。不过System.gc(),不等于程序结束...

java垃圾回收疑问

第二种测试没有输出结果是因为生成的book对象的生命周期没有结束所以就没有调用了finalize方法。楼主可以试着把第二种测试改成下面那样,让book的生命周期结束,这样它就被回收了。主要问题就在生命周期上。public class Test { public static void main(String arg[]) { boolean flag = true;if (...

问一个java垃圾回收的问题

不存在。java的内存管理你可以结合有向图来理解,java中一个对象适合垃圾回收的条件是该对象存在内存中,但是没有任何箭头指向它,也就是该对象已经不可达。一个不可达的对象是没有办法再让他成为可达对象的。这个就像一堆气球,有的气球系了绳子线,规定了你只能触摸绳子不能触摸气球,如果气球的绳子被...

JVM - 垃圾回收

的垃圾,不回收的话会一直占用内存,对于程序的性能,内存是有一定影响的;在 C++ 中,开发人员是自己进行垃圾回收的,但是在 Java 中,JVM 里面存在多种垃圾回收器以及多种垃圾回收算法,底层的垃圾回收一般情况下不需要开发人员关心,但是在某些特定的场景下,需要开发人员掌握 JVM 垃圾回收机制,更好的解决一些程序问题;...

Java的垃圾回收

准确的说垃圾回收是一种资源释放策略,或者叫机制。并不是完全采用一种回收算法。关于JVM中对象的生命周期,参考JVM规范。新生代,原生代,老年代。。。影子对象,可捕获的影子对象。。。关于对象池,Java中的“引用”的真正含义,望自琢磨。

JAVA垃圾回收的工作原理是什么?

所谓jvm垃圾回收机制其实就是相较于于c、c++语言的优势之一是自带垃圾回收器,垃圾回收是指不定时去堆内存中清理不可达对象。垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,程序员唯一能做的就是通过调用System.gc 方法来建议执行垃圾收集器。

java垃圾回收问题?

JAVA的垃圾回收是自动进行的,非要手动的话,System.gc()/Runtime.gc();在多线程的情况下,此类可能不只产生1个实例;使用不同的类加载器加载就可以得到多个A的实例;如果你的本意是想使类A只能有一个实例,那么请用Singleton模式改写此类,你这个写的看着有点难受.计数器递减没有什么不可以的,不知道你...

java垃圾回收器的基本原理 java垃圾回收器的工作 java 垃圾回收器 java垃圾回收器有哪些 商业版java垃圾回收器 java垃圾回收器如何运行 javacms垃圾回收器 jvm默认的垃圾回收器 jvm垃圾回收器
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
快手极速版如何看助力的人主页 喝茶到底需要多少茶具 茶具几个杯子 一个人喝茶用什么茶具,适合一个人泡茶的茶具 古牧价钱、和怎么养、 现在市价纯种古牧多少钱? 前几天我刚刚在赶集网看到一则卖狗信息,然后花了2100元卖了只古牧,可是... 找个懂古牧狗的人,陪我去挑狗!! 到狗场训练一只德牧大概得多少钱? 起绰号一个白白有点胖有点矮的女孩 化解三刑最简单的方法 女生喜欢一个人的时候会有什么样的表现 快手快币是什么? 未成年办电话卡并充话费后在未使用流量与电话的情况下一直被扣钱是什 ... 洛阳豫健保的优点是什么 怎么储存猪心不容易坏? 消费分期什么意思 消费分期包括什么意思 ...乱发脾气,动手打人,父母说什么都不听,不做,还向父母动手,骂... 9岁孩子开始打爸爸妈妈怎么办 9岁孩子开始打爸爸妈妈怎么教育 ...我批评或打骂她,她就说我恨她不喜欢她,经常和我顶嘴,我该怎么... 9岁女儿不听话怎么办 9岁女孩不听话怎么教育 9岁的女儿应该怎么教育 小孩骂父母和父母顶嘴怎么教育 小孩骂父母和父母顶嘴怎么办 小孩顶嘴骂父母怎么教育 孩子骂人大人如何教育 草莓应多久浇一次水 ...那么他的叛逆表现都有哪些?作为父母该怎样教育? 青春期儿子骂父母该怎么办 电动晾衣架需要开关吗 Java的垃圾回收 java如何销毁new出来的对象 浴室挂镜应该怎么保养比较好? 热带风暴是一种自然灾害,如图,A市在上午七点接到热带风暴警报时,热带风 ... 四小时48分钟乘1/5等于多少 狡组词(猾组词) 巨组词(沮组词) 我家的电脑换了个新硬盘后开机要按F1才可以开机,怎么不用按F1也可以开 ... 电脑刚刚换了硬盘,出现这个怎么办 三国志11威力加强版勇将集结怎么过 《三国志11》勇将集结图文攻略介绍_《三国志11》勇将集结图文攻略是什么... 怎么把word文档中的字体改为Times New Roman? 如何将word中的英文设置成罗马文? 陶氏紫薇国学注册过商标吗?还有哪些分类可以注册? 我淘宝是卖实物的,我发货的时候点错了。点成虚拟无需物流了。这个淘宝会... ...第一次发货不知道怎么选就选择了无需物流,这样会被处罚吗?_百度知 ... ...今突然发现洗衣机不能用了 后找售后维修发现是主板损坏 主板老... 华硕进水维修,换主板1850,买来不到四月 苹果5s主板坏了多少可以修好? ...内的所有txt文件都转为任意编码,如ANSI或Unicode等等,谢谢