前提
1. 认识JVM,什么是JVM
简单来说,就是java程序的运行环境(java二进制字节码的运行环境)
1.1 JVM (java虚拟机)的好处 :
-
一次编写,到处运行的机制 (因为java语言是跨平台的,跨平台就是在jvm这个层面进行实现的,jvm屏蔽了字节码以及底层操作系统的差异,对外提供一致的运行环境)
-
自动内存管理机制,垃圾回收功能(跟C语言对比,c语言需要程序员自己去释放内存)
-
数组下标越界检查 (跟c语言对比,C语言不会进行下标越界检查,需要程序员自己去检查)
-
多态(让程序代码可扩展性有巨大提升,jvm内部使用虚方发表机制实现多态)
1.2 JVM JRE JDK 三者 的 比较
- JRE(Java Runtime Environment java运行环境) = JVM+基础类库
- JDK (Java Development Kit java开工具包) = JVM+基础类库+编译工具(javac javap 内存检测工具)
- 开发javaSE程序 (JDK+IDE工具)
- 开发javaEE(JDK+应用服务器(tomcat)+IDE工具)
1.3 学习JVM 的作用
- 提高面试竞争力
- 理解底层实现原理(长期发展)
- 中高级程序员的必备技能
1.4 学习JVM 的路线
类------------>类加载器-------->jvm内存结构 --------------------->jvm执行引擎
一个类 源代码 编译 成二进制字节码 之后通过类加载器加载进JVM运行