Java工程师这个都问题答不出来,面试官直接先走一步?
如果不能理解一个问题,最好的办法是直接背诵
在java面试中,最常用,也可能是『必被问到』的一个题目就是JVM 的主要组成部分及其作用。下面教你如何回答面试官。
首先JVM包含『两个子系统』和『两个组件』
两个子系统为:Class loader(类装载器)、Execution engine(执行引擎);
两个组件为:Runtime data area(运行时数据区)、Native Interface(本地接口)。
然后我们再分说每个子系统和组件功能:
他们之前的执行流程为:首先通过『编译器』把 Java 代码转换成『字节码』,『类加载器』(ClassLoader)再把字节码加载到内存中,将其放在运行时数据区(Runtime data area)的方法区内,而字节码文件只是 JVM 的一套『指令集规范』,并不能直接交给底层操作系统去执行,因此需要特定的『命令解析器执行引擎』(Execution Engine),『将字节码翻译成底层系统指令』,再交由 CPU 去执行,而这个过程中需要调用其他语言的本地库接口(Native Interface)来实现整个程序的功能。
此外,重点说明,类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构;
如上解释,如果不理解请全文背诵,这个题几乎是必问题。
非专业的专业人士 原创文章
原创不易,请【关注】【点赞】【收藏】
如需转载,请回复说明
| 留言与评论(共有 0 条评论) “” |