您的位置:

Full GC是什么意思?

一、Full是什么意思

Full这个词在英语中表示满的、完全的意思,同样的,在计算机领域中也有类似的含义。在Java中,Full指的是Java堆内存被占满的状态。

二、Full GC是什么

GC(Garbage Collection)是Java自带的垃圾回收机制,它会自动回收不再使用的Java对象,防止内存溢出。Full GC是指执行完整的垃圾回收机制,会回收所有不再使用的Java对象。相比于Minor GC,Full GC会耗费更多的时间,因为它会扫描整个Java堆,以找到所有的垃圾对象。

public class FullGCDemo {
    public static void main(String[] args) {
        Object obj1 = new Object();
        Object obj2 = new Object();
        obj1 = null;
        obj2 = null;
        //以下两行代码会导致Full GC
        System.gc();
        System.out.println("Full GC已执行");
    }
}

三、Fully是什么意思

Fully表示完全地、彻底地。在Java中,Fully包含两个方面的含义:Fully
Qualified Name(完全限定名)和Fully Synchronized(完全同步)。

完全限定名是指Java类的名称,包括包名和类名。它唯一地标识一个Java类。Fully Qualified Name可以使用"." 或 "$" 作为分隔符。例如,java.util.Calendar、java.util.concurrent.locks.Condition,以及内部类的完全限定名为Outer$Inner。

完全同步是指在Java中,同一时间只有一个线程可以访问受锁保护的代码块或方法。Fully Synchronized可以用在方法或代码块的声明上,保证在同一时间只允许一个线程进入受锁保护的区域。

四、Fullled是什么意思

Fullled在英语中是没有意义的单词。在计算机领域中似乎也不存在类似的术语。因此,在Java编程中,我们并不需要关注这个词的含义。

五、Fullmoom是什么意思

Fullmoon在英语中表示满月的意思。在Java中,Fullmoon并没有特定的意义。可能会有一些Java类库、工具或框架使用Fullmoon作为名称的一部分,但这并不影响我们理解Full GC的含义。

六、Fullcolor是什么意思

Fullcolor在英语中表示全彩的意思。在计算机领域中,Fullcolor通常用来表示图像格式。与Full GC并没有直接关系。

七、Full什么意思charge

Full charge在英语中表示电池充满的意思。在Java中,Full charge并没有特定的含义。但是,Java不同的垃圾回收算法中,可能会将Full GC的触发条件与Java堆内存使用率、进程内存使用率甚至系统内存使用率联系起来。例如,在CMS算法中,Full GC会在Java堆内存使用率超过一定阈值时自动触发。

八、Minor GC是什么意思

Minor GC与Full GC相对应。Minor GC是指只回收新生代(Young Generation)中不再使用的Java对象。在Java的垃圾回收机制中,新生代中的对象存活时间很短,因此,Minor GC可以频繁地执行,以保证Java堆内存的空间使用效率。与Full GC相比,Minor GC只扫描新生代的对象,可以快速完成回收。

九、Full GC什么时候触发

Full GC不会像Minor GC那样经常被调用。Full GC需要扫描整个Java堆内存,且扫描的对象生命周期较长,因此会消耗较多的计算资源。

Full GC通常在以下情况下被触发:

1. Java堆内存空间不足,无法继续分配对象

2. Medium和Old年代的空间不足

3. 执行System.gc()方法时

4. 当启用CMS(Concurrent Mark and Sweep)垃圾回收算法时,堆内存使用达到CMS中指定的阈值

十、什么时候触发Full GC回收

Full GC回收的时机与垃圾回收算法有关。在串行垃圾回收(Serial Garbage Collector)算法中,Full GC是在两个Young Generation之间触发的。而在CMS垃圾回收算法中,Full GC是由多个并发的垃圾回收线程执行的,它会阻塞业务线程,导致业务线程出现停顿。在G1(Garbage First)垃圾回收算法中,Full GC会主动触发清理整个Java堆。

//触发Full GC的例子
public class FullGCDemo {
    public static void main(String[] args) {
        Object obj1 = new Object();
        Object obj2 = new Object();
        obj1 = null;
        obj2 = null;
        //以下两行代码会导致Full GC
        System.gc();
        System.out.println("Full GC已执行");
    }
}