Java面试高频考点:JVM实战高手之运行机制
- 相关推荐
作为一名Java开发工程师,JVM是永远逃不开的话题,它也是面试过程中必问的一个考点,比如面试官经常会问,你所开发的系统在部署时是如何进行JVM参数调优的?首先,JVM是什么,全称Java Virtual Machine(Java虚拟机),它是通过软件来模拟出来的具有完整的硬件系统功能、运行在完全隔离的环境中的完整的计算机系统。听起来很抽象,很难理解,让我们看看我们写的程序是如何运行的。
我们写好的java代码,其载体就是以“.java”为后缀的代码文件,通常将这些代码文件打成“.jar”为后缀的jar包或是“.war”为后缀的war包放到线上机器去部署。这其中有一个非常关键的步骤,那就是“编译”。也就是说,在写好的“.java”代码打包的过程中,一般就会把代码文件编译成".class"后缀的字节码文件,比如 "A.class",然后这个".class"后缀的字节码文件,才是可以运行起来的文件。
对于编译好的这些“.class”字节码,是如何在线上机器运行起来的呢?这个时候就需要使用诸如"java-jar"之类的命令来运行写好的代码。此时一旦采用"java"命令,实际上就会启动一个JVM进程。
因此,在概念上晦涩难懂的JVM就是用来负责运行这些".class"字节码文件的。
那么这些“.class”文件是如何加载进JVM中的,就需要“类加载器”了。 JVM就会基于自己的字节码执行引擎,执行加载到内存里的那些类。比如代码中有一个"main()"方法,那么JVM就会从这个"main()"方法开始执行里面的代码。当需要哪个类的时候,就会使用类加载器来加载对应的类,就是对应的类的".class"文件。
JVM运行机制
这篇文章先简要的介绍JVM的概念以及作用,后面将对JVM的运行机制、内存管理等内容进行详解,欢迎关注。