JVM虚拟机掌握和优化

第一部分:基础

一、JVM初始认知

一、Java文件编译的过程 :

1.程序员编写的.java文件

2.由javac编译成字节码文件.class:(为什么编译成class文件,因为JVM只认识.class文件)

3.在由JVM编译成电脑认识的文件 (对于电脑系统来说 文件代表一切)

JVM虚拟机掌握和优化_第1张图片

二、Java是跨平台语言 :

1.这个夸平台是中间语言(JVM)实现的夸平台 java有JVM从软件层面屏蔽了底层硬件、指令层面的细节让他兼容各种系统;

2.难到 C 和 C++ 不能夸平台吗 其实也可以 C和C++需要在编译器层面去兼容不同操作系统的不同层面,写过C和C++的就知道不同操作系统的有些代码是不一样;

三、为什么学习JVM :

1:为什么Java可以霸占企业级开发那么多年 因为:内存管理

(1)我们在java开发中何时考虑过内存管理

(2)不像c和c++还要考虑什么时候释放资源

(3)我们java只需要考虑业务实现就行了

2.出现问题后该如何解决,这就好像一个人一样,我一般情况吃什么从来不用考虑进入了身体那一个部位,可是总有一天,假如吃了不该吃的也是要进医院的

3.写出更优秀的程序,就像了解了我们身体内部原理,我们知道吃什么对身体好。

二、Jave SE Platform:Jdk和Jre和JVM的区别

JVM虚拟机掌握和优化_第2张图片

官网:https://www.oracle.com/java/technologies/platform-glance.html

总结:

1.Jdk中包括了Jre,Jre中包括了JVM;

2.Jvm在倒数第一层 ,JVM下面是各类OS;

3.Jre大部分都是 C 和 C++ 语言编写的,他是我们在编译java时所需要的基础的类库;

4.Jdk还包括了一些Jre之外的东西 ,就是这些东西帮我们编译Java代码的, 还有就是监控Jvm的一些工具;

第二部分:运行时数据区

三、JVM运行时数据区

JVM虚拟机掌握和优化_第3张图片

JVM主要包括两个子系统和两个组件。

子系统分别是Classloader子系统和Executionengine(执行引擎)子系统;

两个组件分别是Runtimedataarea(运行时数据区域)组件和Nativeinterface(本地接口)组件。

Classloader子系统:根据给定的全限定名类名(如java.lang.Object)来装载class文件的内容到Runtimedataarea中的methodarea(方法区域)。Java程序员可以extendsjava.lang.ClassLoader类来写自己的Classloader。

Executionengine子系统:执行class中的指令。任何JVMspecification实现(JDK)的核心都是Executionengine,不同的JDK例如Sun的JDK和IBM的JDK好坏主要就取决于他们各自实现的Executionengine的好坏。

Nativeinterface组件:与nativelibraries交互,是其它编程语言交互的接口。当调用native方法的时候,就进入了一个全新的并且不再受虚拟机限制的世界,所以也很容易出现JVM无法控制的nativeheapOutOfMemory。 RuntimeDataArea:这就是我们常说的JVM的内存了。

四、类和对象去哪了

JVM虚拟机掌握和优化_第4张图片

五、方法是怎么执行的

JVM虚拟机掌握和优化_第5张图片

六、追本溯源—堆和栈

JVM虚拟机掌握和优化_第6张图片

第三部分:JVM生命周期

七、JVM生命周期

JVM虚拟机掌握和优化_第7张图片

八、双亲委派模式

双亲委派模型是一种组织类加载器之间关系的一种规范,他的工作原理是:如果一个类加载器收到了类加载的请求,它不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,这样层层递进,最终所有的加载请求都被传到最顶层的启动类加载器中,只有当父类加载器无法完成这个加载请求(它的搜索范围内没有找到所需的类)时,才会交给子类加载器去尝试加载.

JVM虚拟机掌握和优化_第8张图片

JVM虚拟机掌握和优化_第9张图片

第四部分:GC

九、JVM的垃圾回收机制

JVM虚拟机掌握和优化_第10张图片

JVM虚拟机掌握和优化_第11张图片

十、JVM垃圾回收分代内存机制

JVM虚拟机掌握和优化_第12张图片

十一、Minor GC、Major GC、Full GC区别及触发条件

JVM虚拟机掌握和优化_第13张图片

十二、GC标记算法或标记策略

JVM虚拟机掌握和优化_第14张图片

十二、GC回收机制策略(也称为GC算法)

JVM虚拟机掌握和优化_第15张图片

JVM虚拟机掌握和优化_第16张图片

JVM虚拟机掌握和优化_第17张图片

十三、GC收集器总结

JVM虚拟机掌握和优化_第18张图片

JVM虚拟机掌握和优化_第19张图片

第五部分:JVM参数和优化

十四、JVM参数

JVM虚拟机掌握和优化_第20张图片

十五、JVM优化案例分享

JVM虚拟机掌握和优化_第21张图片

十六、JVM监控分析工具

JVM虚拟机掌握和优化_第22张图片

JVM虚拟机掌握和优化_第23张图片

你可能感兴趣的:(JVM,jvm)