JVM、(一)JVM开篇
一、JVM是什么?
- 定义:
Java Virtual Machine - java程序的运行环境 (Java 二进制字节码的运行环境)
比如 Helloworld.java 程序通过javac编译成了 class字节码然后被加载到java虚拟机中运行。 - 好处:
- 跨平台实现的基石。 Java程序一次编译,到处运行,JVM屏蔽了字节码和底层操作系统之间的差异,使得编译后的二进制字节码文件能够运行在不同的操作系统平台上。
- 自动内存管理,垃圾回收功能。
- 数组下标越界越界检查。
- 多态。
- 比较(jre、jdk、jvm):
jre:java runtime environment(Java运行时环境) jvm结合一些基础类库构成了jre;
jdk:java development kit(Java 开发工具包) jvm+基础类库+编译工具构成 jdk;
二、常见的JVM
三、学习路线
重点:
- JVM主要涉及三大块: 类加载器
ClassLoader
、JVM内存结构(方法区、堆、虚拟机栈、本地方法栈、程序计数器)、执行引擎(解释器、即时编译器、垃圾回收) - 一个java程序通过编译为二进制字节码文件,但是字节码文件必须通过类加载器
ClassLoader
才能成功加载到JVM中去执行。方法区存放是的java类;堆存放的是类实例化的对象;当对象调用方法时会使用到虚拟机栈、本地方法栈、程序计数器;方法执行时是由执行引擎的解释器逐行解释执行的,方法里的热点代码(频繁调用)会被JIT Compiler
即时编译器优化后执行;GC会对堆中一些不再引用的对象进行回收。Java还有一些方法需要调用底层操作系统相关方法,通过本地方法接口实行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 iStitches!