Java 虚拟机JVM
定义
Java Virtual Machine:Java程序的运行环境(Javae二进制字节码的运行环境),相比C++有以下好处:
- 一次编写,到处运行
- 自动内存管理,垃圾回收功能
- 数组下标越界检查
- 多态
学习JVM有什么用?
- 帮助我们理解底层实现原理,例如:foreach是如何实现的?动态代理又是如何实现的?等等
常见的JVM
JVM是一套规范,可以有不同的实现(HotPot)
学习路线
- 类加载器:ClassLoader
- JVM内存结构:Method Area(方法区)、Heap(堆)、JVM Stacks(虚拟机栈)、PC Register(程序计数器)、Native Method Stacks(本地方法栈)
- 执行引擎:解释器(Interceptor)、JIT Compiler(即时编译器)、GC(垃圾回收器)
内存结构
1.程序计数器
- 定义:Program Counter Register,程序计数器(寄存器)
Java源代码->二进制字节码(一堆JVM指令)->通过解释器->机器码->交给CPU执行
其实程序计数器的作用就是:记住下一条JVM指令的地址。
- 特点:程序计数器是线程私有的
- 不会存在内存溢出