JVM
jcmohuihua
这个作者很懒,什么都没留下…
展开
-
JVM(四):内存模型(JMM)、CAS、synchronized优化
一、内存模型(JMM)原子性:指不可再分的操作,当一个操作可再分的时候会受到多线程的影响,使用 synchronized 可保证不受多线程的影响,使操作具有原子性。内存结构:一个主内存用于存放共享数据;多个工作内存,存放拷贝的共享数据,线程对工作内存的共享数据进行修改,然后再更新到主内存中。可见性:保证在多线程之间,一个线程对 volatile 修饰的变量的修改对另外一个线程可见,单独 v...原创 2020-02-07 21:08:47 · 199 阅读 · 0 评论 -
JVM(三):GC调优、Javap工具、运行期优化
一、GC调优确定调优目标,选择合适的回收期:(1)低延迟:CMS、G1、ZGC;(2)吞吐量:ParallelGC。调优之前先确定代码问题:数据是否太多、数据表示是否太臃肿、是否存在内存泄露。从新生代调优开始:内存空间越大越好。(1)新生代的大小建议设置为堆内存大小的25%~50%之间;(2)新生代大小的理想内存是能容纳 【并发量*(请求 - 相应)】的数据;(3)幸存区的内存设...原创 2020-02-07 15:20:00 · 162 阅读 · 0 评论 -
JVM(二):JVM GC(垃圾回收)
GC(垃圾回收)一、判断回收对象:使用可达性分析算法探索所有存活的对象,看是否能够沿着 GC Root 对象为起点的引用链找到对象,找不到,则可回收。.二、五种引用:(1)强引用:只有所有 GC Root 对象都不通过 “强引用”引用该对象时,才可被回收。一般使用关键字 new 创建的对象都是强引用。(2)软引用(SoftReference):仅有软引用引用该对象时,在垃圾回收后,内存...原创 2020-02-06 21:49:39 · 114 阅读 · 0 评论 -
JVM(一):JVM内存结构
一、Java内存结构分布图二、分析程序计数器(Program Counter Register):(1)在物理上是一个寄存器;(2)作用:记住下一条 JVM 指令的执行地址;(3)特点:是线程私有的,即每个线程都有自己独立的程序计数器;不会存在内存溢出。Ps:源代码(编译)——> 字节码文件(存放的是JVM指令);JVM指令 ——> 解释器(解释指令)—...原创 2020-02-06 15:02:37 · 118 阅读 · 0 评论