摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 区别一:使用的范围不一样: CMS收集器是老年代的收集器,可以配合新生代的Serial和ParNew收集器一起使用。 G1收集器收集范围是老年代和新生代。不需要结合其他收集器使用 区别二:STW的时间: CMS收集器以最小的停顿时    阅读全文
posted @ 2025-03-29 15:54
Tsukinor
阅读(419)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 在Java中,垃圾回收机制是自动管理内存的重要组成部分。根据其作用范围和触发条件的不同,可以将GC分为三种类型:MinorGc(也称为Young Gc)、Major Gc(有时也称为Old GC)、以及Full GC。以下是这三种    阅读全文
posted @ 2025-03-29 15:48
Tsukinor
阅读(170)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 标记-复制算法应用在CMS新生代(ParNew是CMS默认的新生代垃圾回收器)和G1垃圾回收器中。标记复制算法可以分为三个阶段: 标记阶段,即从GC Roots集合开始,标记活跃对象; 转移阶段,即把活跃对象复制到新的内存地址上;    阅读全文
posted @ 2025-03-29 15:43
Tsukinor
阅读(101)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 标记-清除算法:标记-清除算法分为"标记"和“清除"两个阶段,首先通过可达性分析,标记出所有需要回收的对象,然后统一回收所有被标记的对象。标记-清除算法有两个缺陷,一个是效率问题,标记和清除的过程效率都不高,另外一个就是,清除结束    阅读全文
posted @ 2025-03-29 15:35
Tsukinor
阅读(13)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 在Java中,判断对象是否为垃圾(即不再被使用,可以被垃圾回收器回收)主要依据两种主流的垃圾回收算法来实现:引用计数法和可达性分析算法。 引用计数法(Reference Counting) 原理:为每个对象分配一个引用计数器,每当    阅读全文
posted @ 2025-03-29 15:33
Tsukinor
阅读(34)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 Serial收集器(复制算法):新生代单线程收集器,标记和清理都是单线程,优点是简单高效; ParNew收集器 (复制算法):新生代收并行集器,实际上是Serial收集器的多线程版本,在多核CPU环境下有着比Serial更好的表现    阅读全文
posted @ 2025-03-29 15:29
Tsukinor
阅读(17)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 垃圾回收(Garbage Collection,Gc)是自动管理内存的一种机制,它负责自动释放不再被程序引用的对象所占用的内存,这种机制减少了内存泄漏和内存管理错误的可能性。垃圾回收可以通过多种方式触发具体如下: 内存不足时:当J    阅读全文
posted @ 2025-03-29 15:26
Tsukinor
阅读(22)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 1.类加载检查:虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 2.分配内存:    阅读全文
posted @ 2025-03-29 14:42
Tsukinor
阅读(10)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 1.加载 类的加载是指将读取类的class文件,将其转化为某种静态数据结构存储在方法区内,并在堆中为之创建一个Class类对象。类的加载过程是由类加载器完成,类加载器由JVM提供。我们也自己也可以通过继承ClassLoader来实    阅读全文
posted @ 2025-03-29 14:36
Tsukinor
阅读(18)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 内存泄露:内存泄漏是指程序在运行过程中不再使用的对象仍然被引用,而无法被垃圾收集器回收,从而导致可用内存逐渐减少。虽然在Java中,垃圾回收机制会自动回收不再使用的对象,但如果有对象仍被不再使用的引用持有,垃圾收集器无法回收这些内    阅读全文
posted @ 2025-03-29 14:27
Tsukinor
阅读(35)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 《深入理解Java虚拟机》书中对方法区(Method Area)存储内容描述如下:它用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等。 类信息:包括类的结构信息、类的访问修饰符、父类与接口等信息。 常    阅读全文
posted @ 2025-03-29 14:19
Tsukinor
阅读(26)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 我们先来说堆。堆是 OOM 故障最主要的发生区域。它是内存区域中最大的一块区域,被所有线程共享,存储着几乎所有的实例对象、数组。所有的对象实例以及数组都要在堆上分配,但是随着 JIT 编译器的发展与逃逸分析技术逐渐成熟,栈上分配、    阅读全文
posted @ 2025-03-29 14:15
Tsukinor
阅读(47)
评论(0)
推荐(0)
        
            
        
        
摘要:        
悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿·丘吉尔 类加载器Loading -- 虚拟机自带的加载器 1.Boot Strap Class Loader : 启动类(根加载器) 2.Extension Class Loader: 扩展类加载器 3.Application Class    阅读全文
posted @ 2025-03-29 14:08
Tsukinor
阅读(19)
评论(0)
推荐(0)
        
 
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号