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指令的地址。

  • 特点:程序计数器是线程私有的
  • 不会存在内存溢出
原文地址:https://www.cnblogs.com/zxfei/p/11664107.html