![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM--JMM
文章平均质量分 88
Java内存模型相关知识点
SIDOS007
PMP证书项目经理,Java开发出身,个人擅长需求屏蔽,客户关系维护;由开发出身,更能快速把客户能看懂的需求,转化为开发能看懂的需求!目前,更多时间是用于钻研Java底层和框架底层,擅长JVM,JUC,Spring底层等等内容,敏捷开发,瀑布开发等项目管理模式,了解中台,新零售等,是一个技术领导者型的项目经理!
展开
-
关于锁升级,经历过hashcode后的结果
@TOC一、锁升级问题根据第三版《深入理解java虚拟机》第三版,原文如下:看到这里可能会发现一个问题:当对象进入偏向状态的时候,Mark Word大部分的空间(23个比特)都用于存储持有锁的线程ID了,这部分空间占用了原有存储对 象哈希码的位置,那原来对象的哈希码怎么办呢?在Java语言里面一个对象如果计算过哈希码,就应该一直保持该值不变(强烈推荐但不强制,因为用户可以重载hashCode()方法按自己的意愿返回哈希码),否则很多依赖对象哈希码的API都可能存在出错风险。而作为绝大多数对象哈希原创 2020-10-19 14:52:46 · 1816 阅读 · 2 评论 -
HotSpot 术语表翻译(JVM)
HotSpot Glossary of Terms作者的话前言adaptive spinning( 自适应自旋)biased locking(偏向锁)block start table(块开始表????大概是指对象起始位置存放的内容)bootstrap classloader( 引导类加载器)bytecode verification(字节码校验)C1 compiler(C1编译器->大佬专用 ,这段太难了,没研究过翻译不准!)C2 compiler(C2编译器->超级大佬专用,这段太难了,没研翻译 2020-07-29 18:32:39 · 1113 阅读 · 1 评论 -
JVM的运行时数据区详解
一、JVM的运行时数据区概览JVM运行时数据区主要包括以下几个部分:程序计数器、虚拟机栈、本地方法栈、方法区、堆;其中栈是运行时的单位,而堆是存储的单位!1.程序计数器程序计数器可以看作是当前线程所执行的字节码的 行号指示器可以通过javap -c xxx.class(也可以使用javap -v 查看附加信息)执行查看反汇编文件;字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。如果线程正原创 2020-07-03 14:07:37 · 596 阅读 · 1 评论