今天爱分享给大家带来JVM 工作原理?【面试题详解】,希望能够帮助到大家。
运行 jvm 字符码的工作是由解释器来完成的。解释执行过程分三步进行:
代码的装入、代码的校验、和代码的执行。
装入代码的工作由“类装载器 class loader”完成。类装载器负责装入运行一个程序需要的
所有代码,这也包括程序代码中的类所继承的类和被调用的类。当类装载器装入一个类时,
该类被放在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他
办法可以影响其他类。在本台计算机的所有类都在同一地址空间中,而所有从外部引进的类,
都有一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得较高的运行效
率,同时又保证它们与从外部引进的类不会相互影响。当装入了运行程序需要的所有类后,
解释器便可确定整个可执行程序的内存布局。解释器为符号引用与特定的地址空间建立对应
关系及查询表。通过在这一阶段确定代码的内布局,java 很好地解决了由超类改变而使子类
崩溃的问题,同时也防止了代码的非法访问。随后,被装入的代码由字节码校验器进行检查。
校验器可以发现操作数栈益处、非法数据类型转化等多种错误。通过校验后,代码便开始执
行了。
Java 字节码的执行有两种方式:
1)即时编译方式:解释器先将字节编译成机器码,然后再执行该机器码。
2)解释执行方式:解释器通过每次解释并执行一小段代码来完成 java 字节。
码程序的所有操作。