JAVA虚拟机及JAVA虚拟机的工作原理
Java虚拟机
JAVA语言之所以可以成为主流的语言之一就是因为其有一个重要的特点及优势———“一次编译,处处运行!”
JAVA能够具有这样的平台无关性其中的关键就是使用了JAVA虚拟机(Java Virtual Machine , JVM)。Java虚拟机并不是一台真实的机器,而是想象中的机器,通过模拟真实机器来运行Java程序。
对于Java语言而言,用Java编写的计算机程序(.java后缀)在经过编译器编译成字节码文件,这种字节码文件不是针对于系统平台的,而是针对不同的抽象的Java虚拟机的。而在不同的系统平台上,会安装不同的Java虚拟机。借此可以用不同版本的Java虚拟机来屏蔽各个不同平台的差异,从而使Java程序(字节码文件)具有平台无关性。而Java虚拟机在执行字节码文件时会解释为具体平台的机器指令来执行。
JAVA虚拟机的工作原理
JAVA虚拟机的工作原理:
- 类装载器:其主要功能是为执行程序寻找和装载所需要的类,就是把字节码文件装到Java虚拟机中。
- 字节码效验器:其功能是对字节码文件进行效验,保证代码的安全性。字节码效验器主要负责测试代码段格式并进行规则检查,检查伪造指针,违反访问权限或者试图改变对象类型的非法代码。
- 解释器:具体的平台并不认识字节码文件,最终起作用的还是这个最重要的解释器他将字节码文件翻译成所在平台能识别的东西。
- 用java编写的程序在编译为字节码文件后,先后经过JVM的类装载器,字节码效验器最后再由解释器解释翻译为平台能是别的东西来进行运行。