`
T240178168
  • 浏览: 367981 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

gc机制

    博客分类:
  • java
gc 
阅读更多
一、谁在做Garbage collection
垃圾回收机制是放在JVM中,由JVM来负责回收垃圾,我们只需要创建对象来分配空间,当对象无用时则不用担心空间回收的问题。
二、对象什么时候被回收
对象的生命周期与作用域无关,与引用有关。当一个对象被多个引用所指向,当该对象不再有任何引用指向它时,这个对象就被抛弃了,就可以被垃圾回收机制回收。比如当某个对象不存在任何引用时,引用告诉jvm你可以回收这个对象了,它对于我来说没有用了。
当jvm的垃圾回收机制对堆空间做检测时,发现某个对象的引用数为0时,就会把这个对象列入待回收列表中,并不是马上就销毁。
当一个对象被认为没有必要存在了,则会释放它占用的内存,被释放的内存可以再分配。但是并不是立刻就被回收的,jvm进程做空间回收有较大的系统开销,如果一个对象被丢弃就立刻回收它,会使整个应用的运转效率非常低下,jvm的垃圾回收机制有很多算法,除了引用计数法用来判断对象是否被抛弃外,其他算法是用来确定何时与如何做回收。为了提高效率,垃圾回收器通常在满足两个条件才运行:有对象要被回收,系统需要回收。因此运行时系统只在需要的时候才使用它,所以你不知道垃圾回收发生的准确时间。
三、没有引用指向的对象有用么?
没有引用指向的对象是要被回收的,是堆空间里的一个垃圾。但是有个例外,对于一次性使用的对象(临时对象)。可以不用引用变量指向它。例如:System.out.print("I like Java");就是创建了一个字符串对象后,无引用指向,直接传递给println()方法。
四、应用能干预垃圾回收吗?
这是不能的,对于垃圾回收机制来说,应用只有两个途径发消息给JVM,第一个就是指向某对象的引用全部移除了,这个对象不要了;第二个就是调用方法System.gc()。
对于system.gc()来说这也仅仅是个请求,JVM接受这个消息后并不是立即做垃圾回收,而只是对几个垃圾回收算法做了加权,使垃圾回收操作容易发生,或提早发生,或回收较多而已。
Java的垃圾回收机制是为所有java应用进程服务的,而不是为个特定的进程服务的,所以任何进程都不能命令垃圾回收机制做什么、怎么做或做多少。
分享到:
评论

相关推荐

    Java垃圾回收GC机制

    Java垃圾回收GC机制 Java垃圾回收GC机制是Java虚拟机(JVM)中的一种自动内存管理机制,它主要是为了解决Java程序中的内存问题。GC机制的出现使得Java程序员不再需要手动管理内存,提高了开发效率和程序的稳定性。 ...

    内存管理,GC机制,内存释放过程

    .NET中的内存管理、GC机制、内存释放过程 .NET中的内存管理是自动的,托管代码的内存管理是由CLR(Common Language Runtime)控制的,但是非托管资源不能被自动管理。这意味着当我们使用非托管资源时,需要手动释放...

    Java 内存区域和GC机制

    Java内存区域和垃圾收集(GC)机制是Java...了解并熟练掌握Java内存区域和GC机制对于优化Java应用性能、排查内存问题至关重要。开发者应根据应用需求选择合适的JVM参数和垃圾收集器,并借助相关工具进行监控和调优。

    Java的GC机制探微.pdf

    总的来说,虽然Java的GC机制减轻了程序员的内存管理负担,但了解并掌握GC的运作方式和优化技巧,仍然是提升Java应用效率的关键。通过深入研究GC机制,Java程序员能够更好地控制内存使用,减少不必要的性能开销,提高...

    Java面向对象、集合框架和GC机制

    Java面向对象、集合框架和GC机制的核心要点。

    Android-GC-Research:Android GC 机制调研

    ##Android GC机制实践调研 ================ 众所周知,java GC 是影响Android应用性能的主要因素之一。完全交给系统管理的GC往往不尽如人意,而开发者却也毫无办法,只能对着GC迎合啊迎合,想着办法把GC哄开心了呗~...

    Node.js 的 GC 机制详解

    Node.js中的GC机制,即垃圾回收(Garbage Collection)机制,是处理内存管理的关键技术。Node.js采用的JavaScript引擎是V8,V8的GC机制特别设计用于管理内存的使用,以优化性能和资源利用。 首先,V8引擎在内存使用...

    c#的GC垃圾回收机制详细讲解文档

    C#的垃圾回收机制(GC)是.NET框架中一个至关重要的特性,它负责自动管理和释放内存,从而减轻程序员的工作负担。GC的主要目标是回收不再使用的对象所占用的内存,以防止内存泄漏。在这个机制下,程序员无需手动管理...

    NET中的内存管理,GC机制,内存释放过程汇编.pdf

    NET中的内存管理,GC机制,内存释放过程汇编.pdf

    gc回收机制

    理解并优化GC机制对于Java应用的性能调优至关重要。开发者可以通过调整JVM参数,如设置新生代和老年代的大小、设置GC日志、监控GC活动等手段,来改善应用的性能和稳定性。同时,编写良好的代码习惯,如及时释放不再...

    JVM:GC机制

    Survivor区:当Eden区满之后,MinorGc机制会清理无引用状态的对象,并将GCRoot对象复制到Survivor区其中一个区内 GCRoot:就是指当前仍在直接引用的对象,GCRoot对象所引用的全部对象会形成一个GCRoot链 new对象 ...

    什么是GC,GC是什么意思为什么要有GC

    GC机制可以自动追踪和回收不再使用的对象,释放内存资源,以便更好地利用系统资源。 GC的工作机制 GC的工作机制可以分为四个步骤: 1. 标记(Mark):GC会标记当前使用的对象,以便找到可以引用的所有对象。 2. ...

    JavaGC机制.pdf

    java

    java垃圾回收(gc)机制详解.pdf

    在介绍Java GC机制之前,我们首先要了解垃圾回收的目的和意义。在任何程序中,内存的分配与释放是两个基本的内存管理操作。Java通过垃圾回收机制来帮助开发者自动管理内存,减轻了手动内存管理的负担。 一、为什么...

Global site tag (gtag.js) - Google Analytics