Java知识学习——什么是JVM?

对于Java学习者来说,JVM不会陌生,从一开始用Java编写的Hello World开始,JVM就与我们时时刻刻相关联。

什么是JVM?Java Virtual Machine指的是Java程序的运行环境,用Java编写的源代码,经过Javac编译成Class字节码文件,然后经过程序加载到JVM中即可运行,确切的说是Java二进制字节码的运行环境。

JVM是Java一次编写到处运行的基础,Java语言是跨平台的,正是JVM屏蔽了字节码和底层操作系统之间的差异,对外提供了一致的运行环境,JVM就可用解释的方式来执行二进制字节码文件来达到平台的无关性。

JVM的内存自动管理,提供了垃圾自动回收机制,虽然垃圾回收机制在很多语言中都存在,但是Java在最开始与C、C++之间相互竞争的时候,而这两者都没有相应的内存回收机制,需要自己手动的去释放内存,如果编码不当,也很有可能造成内存的泄露。而JVM就大大的减轻了我们的负担,减少了出错的几率。

当然JVM也还有其他的优点,比如数组下标越界检查,你可能会说Java对于这种的检查不就是数组下标越界抛出异常,可是抛异常和数组的新元素覆盖了程序的其他部分相比较,后者更为严重,C就没有数组下标越界的检查,程序员必须自己去检查数组是否越界,如果一不小心越界,可能会覆盖其他代码的内存。还有多态,多态是面向对象的基石,正是有了多态才可以让程序可扩展。

JVM经常与JRE,JDK相互混淆,下面就是几个之间的区分。

Java知识学习——什么是JVM?_第1张图片

JVM可以帮我们理解底层的实现原理,才能理解自动拆装箱是怎么实现的?动态代理是怎么一回事?

你可能感兴趣的:(Jvm那些事)