Jvm体系结构(jvm位置,jvm体系结构)
学习目录
- jvm的位置(我们这里从上往下理解)上面是java程序,下面是操作系统。
- Java程序(跑的环境是在jvm(虚拟机)跑的,也可以说是在jre上跑的)java运行是需要在特定的环境的也就是这个jre这种。
- jvm(也就是jre,jre包括了jvm):jvm是用c写的
- 操作系统(也是个软件)
- 硬件体系(Intel,sapc)
2、Jvm体系结构:
- java编译
- 编译生成Class File
- 类装载器(类加载器Class Loader)
- 运行时数据区:(类加载完成后进入这个运行时数据区:RuntimeData Are)运行时异常是不可捕获的。这是在类加载器后的产物!!!运行时数据区里面就有(方法区(Method Area),java栈(stack),本地方法栈(native Method Stack),堆(heap) ,程序计数器(pc))
- 本地方法接口(native)(和本地方法库相连)这一层还有执行引擎。为什么又本地方法接口是上面的4是我们的运行数据区啊,jvm的下一层还有操作系统的嘛,所以他就要和jvm里面有的本地方法栈接口嘛,所以就是本地方法接口。
很重要的gc,垃圾回收器
!!!为什么这里的栈,本地方法栈,程序计数器是不会有垃圾回收的?
因为其中的他们是栈啊,是要出栈的,若是上面的是一个垃圾阻塞了,那他不就无法出栈了
!!!Jvm调优也就是垃圾回收,调的就是方法区和堆,99%是调堆。
总结: