
JVM
文章平均质量分 77
ShelbyLee
这个作者很懒,什么都没留下…
展开
-
简述Java内存模型
一、物理机对并发的处理方案在介绍Java内存模型前,我们需要先了解一下物理机对并发的处理方案由于计算机处理器和存储设备的运算速度有几个数量级的差别,处理器快速的计算完成后,总是需要等待I/O操作的完成,在等待期间处理器无法进行其他操作,因此十分浪费资源处理器菌:( ▼-▼ )你好慢噢 I/O设备酱:〒_〒我也没有办法酱所以现代计算机系统都加入了一层读写速度尽可能接近处理器运原创 2018-02-02 21:41:41 · 483 阅读 · 0 评论 -
虚拟机类加载的时机
虚拟机类加载的时机一个类编译完成之后,下一步就需要开始使用类,如果要使用一个类,肯定离不开JVM。在程序执行过程中JVM通过加载,连接,初始化这3个步骤完成。其中连接包括验证、准备、解析三个阶段。1. 类的生命周期共七个阶段: 加载、验证、准备、解析、初始化、使用、卸载其中,验证、准备、解析3个阶段统称为连接确定顺序的五个阶段: 加载:通过类加载器完成(除了数组类,数组类...原创 2018-02-10 21:23:08 · 151 阅读 · 0 评论 -
常量池初探
一、有以下三大常量池:Class文件中的常量池 每个.java文件编译成.class文件后,都会产生当前类独有的常量池,即我们介绍的第一大常量池。 这个常量池主要存放两类常量 字面量(Literal) 包括文本字符串、final类型的常量符号引用(Symbolic References) 包括三类 类和接口的全限定名字段的名称和描述符方法的名称和描述符运行时常量池...原创 2018-02-13 13:39:45 · 176 阅读 · 0 评论 -
volatile关键字分析
之前,我对volatile的理解是很浅显的,实际操作时就出错了。今天来深入了解一下volatile这个关键字。一、volatile的两个语义volatile关键字有两个语义: 保证可见性禁止指令重排序优化可见性:指的就是在多线程环境中,如果一个线程修改了某个变量的值,新值对于其他线程来说是可以立即得知的。我们知道,Java内存模型是通过在变量修改后将新值同步回主内存,在遍历读取前从...原创 2018-03-03 18:46:17 · 267 阅读 · 1 评论 -
关于垃圾回收
1. GC发生在什么时候?GC主要分为young/minor gc和full gc。 young gc触发的时机是:在新生代的Eden区满了之后,会发生young gc,同时在young gc时会有一部分存活的对象晋升到old gen中,所以在young gc后,old gen占用量会提升一些。full gc触发的时机涉及到空间分配担保。在进行young gc前,虚拟机会先检查old g...原创 2018-03-30 12:40:22 · 260 阅读 · 0 评论