docker实践第二版pdf 网盘_深入理解Java虚拟机:JVM高级特性与最佳实践(第二版) 总结...

8cc507e6182d808c040037788307e986.png

68d8f10d31c6a2658a2018e5455df05e.png

Java高级进阶必须要读的一本书之一,知识点多而深,部分点需要有实践经验才能消化。大概复盘自己关于本书消化的知识点,一方面加深印象,一方面便于回顾。

4d2196a7942b311dad61bd47bd9fac73.png
JVM总览

上述图片大致将本书的重点章节内容归纳总结一下。

1.Java虚拟机是什么?

Java虚拟机连接Java语言和各种平台操作系统的中间件,通过Java虚拟就可以将由Java语言开发的应用程序编译为适合操作系统识别的机器码,即将class文件通过对应平台的JVM解释成平台识别的机器码,是实现Java跨平台的关键技术。

主要作用

A:将class文件编译为操作系统可以识别的机器码(后编译阶段)

B:自动化内存管理。

2.Java虚拟机的工作原理?

2.1.内存区域管理

2.1.1. 内存区域划分

fb44f88ae41993adf4b21143a752ba1d.png

i.堆

1.对象的主要存储地点

2.所有线程共享

ii.方法区

1.Class对象相关信息,类变量

2.所有线程共享

iii.本地方法区

iv.栈

1.主要存储局部变量,对象的引用

v.程序计数器:不会发生out of memory

2.1.2. 垃圾回收机机制

6219bb3fb8febf553bf164082f5c8ba9.png

i.主要针对的是堆区域

ii.通过可达性分析来判断一个对象是否可以被回收。可以作为根对象的有:虚拟机栈中引用的对象,方法区中静态类属性引用的对象,方法区中常量引用的对象,本地方法区中引用的对象

iii.垃圾收集算法

1.标记清除

2.标记复制

3.标记整理

4.分代算法

iv.垃圾收集器

81f2703098a358c1b546c48e66ec622b.png

1.是否和应用进程并行

a)平行:G1, CMS, Parallel Old

b)串行:Serial,serial Old ParNew;

2.应用的分代

a)年轻带:serial, parNew,Parallel Scavenge, G1

b)老年带: CMS, SerialOld, G1,Parallel Old

3.最常用的G1和CMS

a)G1:追求低停顿,

i. 特点:并行和并发,分代回收,空间整合,可以预测停顿,

ii. 大致流程:初始标记,并发标记,最终标记,筛选回收

b)CMS:最求地停顿

i. 特点:并行并发收集垃圾,无法清除浮动垃圾,会产生内存碎片

ii. 大致流程:初始标记,并发标记,重新标记,并发清除

2.2.编译Java文件

将java文件编译成操作系统识别的机器码大致需要经历两个阶段,前编译阶段将java文件编译成class文件,后编译阶段将class文件编译成操作系统的识别的字节码;这里JVM主要作用于后编译阶段。

2.2.1. 虚拟机类加载机制

59b9ff5c7c454af70c4beef32fa21129.png

i.加载流程:加载,链接(验证,准备,解析),初始化

ii.双亲委派模型:防止基础类误加载成用户自定义的类

iii.类加载器的种类:启动类加载器,扩展类加载器,应用类加载器,用户自定义类加载器

dccca0d9f99023cbd8f47e10fcff5cb8.png

2.2.2. 虚拟机编译class文件

i.Java虚拟机既可以解释执行也可以编译执行;想要立即执行的代码采用解释执行,对热点代码采用编译执行以提高执行效率

3.如何灵活使用Java虚拟机?

3.1. 充分利用资源层面

0791449c5540059a7c2610f7c3947c33.png

i.Java的内存模型:线程 + 线程本地内存 + 主存;所有的变量都存储在主存中,而线程的工作内存中保存的是主存变量的copy,线程对变量的操作都必须在工作内存中进行,线程之间变量值的传递必须通过主存进行。

ii.多线程环境下的线程安全

1. 可见性,原子性,指令重排序:volatile 保证可见性和禁止指令重排序

2. 同步策略:互斥同步(各种锁,sychronized,lock),非阻塞同步(cas)

3. 锁优化层面:自旋锁(方式线程不断在内核和用户态切换带来的开销),锁粗化,偏向锁,锁消除等

3.2. 问题分析层面

i. 通过相关JVM提供的相关命令:JPS,Jstat,Jstack,jhat, jmap

电子书下载,豆瓣TOP,Kindle电子书下载,Kindle,淘書斋,我的小书屋,txt电子书,pdf电子书,编程资料,azw3电子书,网络小说,漫画,玄幻修真,学习资料,互联网,科幻小说

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值