![](https://img-blog.csdnimg.cn/20190911002837719.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
JVM系列博客
惑边
每一分努力都会在合适的时机得到回报...
展开
-
05-线程安全和锁优化
文章目录线程安全和锁优化一、线程安全二、Java实现线程安全的方法2.1 互斥同步2.2 非阻塞同步2.3 无同步方案三、对象头四、锁优化4.1 自旋锁和自适应自旋锁4.2 锁消除和锁粗化4.3 轻量级锁4.4 偏向锁4.5 对比五、锁升级六、代码验证6.1 重偏向6.1.1 代码6.1.2 小结6.2 批量撤销七、参考线程安全和锁优化一、线程安全多线程访问一个对象时,如果不需要考虑多线程...原创 2020-01-16 12:17:42 · 445 阅读 · 0 评论 -
06-GC参数汇总
文章目录JVM参数一、参数说明二、内存相关三、GC收集器相关CMS/G1通用参数CMS重要参数G1 重要参数四、日志输出相关五、其他5.1 类加载相关5.2 TLAB相关5.3 其他5.4 小问题参考JVM参数一、参数说明java启动参数共分为三类第一类是标准参数(-):所有的JVM实现都必须实现这些参数的功能,而且向后兼容;第二类是非标准参数(-X):默认jvm实现这些参数的功能,但...原创 2020-01-07 15:57:30 · 592 阅读 · 0 评论 -
04-Java内存模型与线程
文章目录Java内存模型与线程一、JMM定义二、JMM细节2.1 主存与工作内存2.2 内存交互2.3 volatile2.4 先行发生原则Java与线程Java内存模型与线程一、JMM定义JMM是Java 虚拟机规范中定义的一种标准,其目的是为了屏蔽各种硬件和操作系统的差异(不同硬件平台的差异),让Java程序在各种平台下都能达到一致的访问效果;定义JMM并不容易,一方面需要足够严谨...原创 2020-01-04 14:53:18 · 244 阅读 · 0 评论 -
01-JVM内存区域
文章目录JVM内存区域一、小历史二、内存区域划分2.1 运行时数据区2.2 JDK1.8的变化2.3 变化原因?三、异常3.1 堆溢出3.2 栈溢出3.3 方法区和运行常量池溢出3.4 元空间溢出3.5 直接内存溢出四、参考JVM内存区域JVM系列文章是基于:《深入理解Java虚拟机:JVM高级特性与最佳实践》-周志明第二版一、小历史在JVM的发展历史中,关于JVM有几个比较重要的事件,...原创 2019-09-18 17:51:40 · 210 阅读 · 0 评论 -
02-垃圾收集器和内存分配策略
文章目录垃圾收集器和内存分配策略一、对象存活算法?1.1 引用计数法1.2 可达性分析算法二、引用类型?2.1 强引用2.2 软引用2.3 弱引用2.4 虚引用三、可达性和对象死亡?3.1 堆区3.2 方法区四、垃圾回收算法4.1 复制算法4.2 标记算法4.3 分代收集4.4 对比五、垃圾收集器5.1 Serial5.2 ParNew5.3 Parallel Scavenge5.4 Serial...原创 2019-09-18 18:44:13 · 440 阅读 · 0 评论 -
03-虚拟机类加载机制
文章目录虚拟机类加载机制一、类加载过程和时机1.1 加载时机1.2 加载过程1.3 加载细节二、类加载器2.1 类和类加载器2.2 双亲委派模型2.2.1 类加载器分类2.2.2 为什么需要双亲委派?2.2.3 为什么需要多个类加载器,而不是一个?2.3 类加载器的关系三、ClassLoader代码分析3.1 loadClass方法3.2 findClass()方法3.3 defineClass(...原创 2019-09-18 18:51:20 · 145 阅读 · 0 评论