![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 95
dreaming9420
还有头发,还能学
展开
-
深入理解JVM(六)JVM调优
文章目录1 调优原则2 何时进行JVM调优3 JVM调优的步骤4 JVM命令5 可视化故障处理工具6 JVM参数解析及调优1 调优原则大多数的Java应用不需要进行JVM调优,一般项目加个xms和xmx参数就够了,JVM调优不是常规手段,性能问题一般第一选择是优化代码,最后的选择才是进行JVM调优,JVM优化是最后不得已的手段。2 何时进行JVM调优Heap内存(老年代)持续上涨达到设置的最大内存值Full GC 次数频繁GC 停顿时间过长(超过1秒)应用出现OutOfMemory 等内存异原创 2022-04-06 00:59:40 · 818 阅读 · 0 评论 -
深入理解JVM(五)垃圾收集器
文章目录1 概念补充1.1 单线程与多线程1.2 串行、并发和并行1.3 吞吐量1.4 client模式与server模式2 经典垃圾收集器2.1 Serial与Serial Old收集器2.2 ParNew收集器2.3 Parallel Scavenge 和 Parallel Old收集器2.4 CMS收集器2.5 Garbage First(G1)收集器2.5.1 G1新生代垃圾回收2.5.2 G1老年代垃圾回收2.5.3 G1回收失败时的Full GC3 各个垃圾收集器比较如果说收集算法是内存回收原创 2022-04-03 21:17:06 · 606 阅读 · 0 评论 -
深入理解JVM(四)JVM的垃圾回收机制
文章目录1 什么是垃圾回收机制2 Java中的引用类型3 如何判断对象是否可以被回收4 方法区的垃圾收集5 垃圾收集算法5.1 标记-清除(Mark-Sweep)算法5.2 标记整理(Mark-Compact)算法5.3 复制算法5.4 分代收集算法6 内存分配与回收策略6.1 内存分配策略6.1.1 内存分配6.1.2 堆的年轻代为什么要有两个Survivor区6.2 内存回收策略6.2.1 Minor GC 、Major GC、Mixed GC和 Full GC的区别6.2.2 Minor GC触发条件原创 2022-04-01 21:07:30 · 1297 阅读 · 2 评论 -
深入理解JVM(三)Java 类加载机制
文章目录1 什么是类加载机制2 类的生命周期2.1 加载2.2 验证2.3 准备2.4 解析2.5 初始化2.5.1 < clinit >()方法详解2.5.2 类在什么情况下会进行初始化2.6 使用2.7 卸载3 类加载器3.1 什么是类加载器3.2 类的唯一性3.3 类加载的方式3.4 JVM有哪些类加载器3.5 类加载器间的关系3.6 双亲委派模型3.6.1 双亲委派模型的工作过程3.6.2 为什么要设计双亲委派模型3.6.3 可以打破JVM双亲委派模型吗3.6.4 如何自定义自己的类加载原创 2022-04-01 14:37:08 · 1284 阅读 · 0 评论 -
深入理解JVM(二)运行时数据区域
文章目录1 什么是运行时数据区域2 运行时数据区域2.1 程序计数器(Program Counter Register)2.2 虚拟机栈(Java Virtual Machine Stack)2.3 本地方法栈(Native Method Stacks)2.4 Java堆(Java Heap)2.5 方法区(Method Area)1 什么是运行时数据区域JVM在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,JVM所管理的内存包括以下几个运行时数据区域:2 运行时数据区域2原创 2022-03-31 20:59:51 · 1224 阅读 · 0 评论 -
深入理解JVM(一)字节码详解
文章目录1 什么是字节码文件2 class文件结构2.1 魔数(magic)2.2 次版本号(minor_version)和主版本号(major_version)2.3 常量池2.3.1 常量池容量计数器(constant_pool_count)2.3.2 常量表集合constant_pool[constant_pool_count-1]2.4 访问标志(access_flags)2.5 类索引(this_class)和父类索引(super_class)2.6 接口索引集合2.6.1 接口计数器(inter原创 2022-03-26 18:19:35 · 1395 阅读 · 0 评论