定义
Java Virtual Machine - java 程序的运行环境(java 二进制字节码的运行环境)
好处:
1.一次编写,到处运行(java的跨平台性)
2.自动内存管理,垃圾回收功能
3.数组下标越界检查
4.多态
比较:
jvm jre jdk
学习JVM有什么用?
1.面试
掌握JVM,提高在面试中的竞争力。增大与其他java程序员的差距。
2.理解底层的实现原理
对于你想长远发展有帮助,理解以前不清楚的实现原理,如自动拆装箱、动态代理等。
3.中高级程序员的必备技能
要定位和解决问题,如项目上线后,出现内存溢出等问题,很多都与JVM相关。可快速定位解决程序运行中出现的问题。
常见的JVM
本课程讲解HotSpot, Oracle JDK edition
学习路线
总体流程
一个类经过javac程序编译成二进制字节码以后,经过ClassLoader(类加载器),加载到JVM里,
类都放在方法区,类的实例对象放在堆里,堆里的对象调用方法时,又会用到虚拟机栈,程序计数器,本地方法栈。
方法执行时的每行代码是由执行引擎中的解释器逐行进行执行。
即时编译器对方法中的热点代码进行优化后的执行。
GC会对堆中不再引用的对象进行垃圾回收