![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
jvm性能调优
文章平均质量分 62
类加载机制、内存模型、内存分配、对象创建等
程序员庖丁解牛
研发经理
展开
-
垃圾收集器ParNew&CMS与底层三色标记算法
一、垃圾收集算法的基础:分代收集理论。1、标记-复制算法2、标记-清除算法两个明显的问题(1)效率问题(如果需要标记的对象太多,效率不高)(2)空间问题(标记清除后会产生大量不连续的碎片)3、标记-整理算法二、垃圾收集器1、Serial收集器(-XX:+UseSerialGC -XX:+UseSerialOldGC)Serial(串行),单线程收集器,在进行垃圾收集的时候必须暂停其它所有的工作线程(“Stop The World”),直到它收集结束。新生代原创 2022-04-21 17:05:09 · 511 阅读 · 0 评论 -
JVM对象创建与内存分配机制深度剖析
一、对象的创建1、类加载检查2、分配内存(1)划分内存的方法:1)指针碰撞(默认)2)空闲列表(2)解决并发问题的方法:1)CAS(compare and swap)2)本地线程分配缓冲3、初始化零值4、设置对象头对象在内存中存点布局可以分为3块领域:对象头、实例数据和对齐填充。5、执行<init>方法(程序员赋值、执行构造方法)二、对象大小与指针压缩1、什么是java对象的指针压缩从jdk1.6 update14开始,在64bit原创 2022-04-18 17:37:36 · 493 阅读 · 0 评论 -
java虚拟机整体结构及内存模型
操作数栈:我们操作数在程序运行过程中,它要做操作的一块临时的一块中转存放的内存空间。动态链接:在程序运转过程中把符号引用转变为直接引用(方法区的直接地址)。方法出口:方法执行完,该回到哪一行的地址。...原创 2022-04-15 14:01:46 · 366 阅读 · 0 评论 -
JDK源码级别类加载机制
1、java类加载运行全过程其中loadClass有以下几个步骤:(1)加载:在硬盘上查找并通过IO读取到字节码文件,加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口(2)验证:校验字节码文件的正确性(3)准备:给类的静态变量分配内存,并赋予默认值(4)解析:将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main方法替换为指向数据所存内存的指针或句柄等(直接引用)),这是所谓的静态链接过程(类加载期间完成),原创 2022-04-14 14:05:36 · 284 阅读 · 0 评论