什么是JVM
-
定义
Java Virtual Machine - java程序的运行容器(java二进制字节码的运行容器)
-
好处
-
一次编写,到处运行
当我们编写Java代码时,JVM为我们屏蔽了二进制字节码与底层操作系统的差异,采用解释的方式来运行二进制字节码,使得这份java代码可以在不同的操作系统运行,实现代码的平台无关性。
-
自动内存管理,垃圾回收功能
-
数组下标越界检查
如果不进行数组下标越界检查,向数组写入数据时,就会导致数据写入不属于数组的地方,而读取数据时,就会读取到别的地方的数据。
-
多态
编译时多态(方法重载)
相同方法名,具体调用方法在编译时由参数列表确定
运行时多态(方法重写)
动态多态性是一个在运行时解析对重写方法的调用的过程,编译时是父类类型,运行时是子类类型。
当运行时调用引用变量的方法时,其方法行为总是表现出子类方法的行为特征,而不是父类方法的行为特征,这就表现出:相同类型的变量调用同一个方法时表现出不同的行为特征,这就是多态。
-
-
比较
JVM、JRE、JDK比较
-
JVM
java虚拟机,为屏蔽java二进制字节码与底层操作系统的差异 -
JRE
java运行时环境,JVM + 基础类库,基础类库为我们提供一些常用的类,如IO类等。 -
JDK
java开发工具包, JVM + 基础类库 + 编译工具
-
学习JVM有什么用
-
面试
-
理解底层的实现原理
-
中高级程序员的必备技能
项目上线后出现内存溢出或者运行缓慢,掌握JVM后就能更好的排查解决问题
常见JVM
学习路线
-
JVM内存结构
-
GC垃圾回收
-
类的字节码结构,编译器优化
-
类加载器ClassLoader
-
执行引擎运行讲解及优化
欢迎关注公众号,后续文章更新通知,一起讨论技术问题 。