java核心JVM

来源:互联网 发布:淘宝怎么打造一个爆款 编辑:程序博客网 时间:2024/06/05 03:50

我认为再学习JAVA语言之前最重要的是先了解一下JVM,和java实现跨平台的原理,只有懂得的其原理,才能更好的去学习JAVA。

我们都知道Java语言是一种面向对象的语言,同时他也是一种半解释半编译性语言。这都是java在编程语言中所占有的角色。为什么称java为半编译半解释性语言啦,这就和Java的虚拟计算机jvm有关,他负责把我们的Java语言编译成一种.class的文件,这种文件在jvm上可以运行他是与平台无关的,jvm能够知道你发出的是什么指令。然后JVM通过解释这种语言,让不同类型的计算机能够知道你发出的指令从而去运行这段程序。我们只需要在不同的计算机上安装不同的jvm,编译后的.class文件就能够运行起来。我们可以把JVM看作是一台虚拟的计算机,我们只需要在这个环境上开发java代码,来达到我们想要的效果。

下面写一段Java代码,简单的了解一下java的运行原理。


首先

main函数直接调用Java.c中LoadClass方法装载该类,这个时候会生成一个.Class文件。

然后main函数调用JNIEnv实例的GetStaticMethodID方法查找装载的class主类中

“public static void main(String[] args)”方法,并判断该方法是否为public方法,然后调用JNIEnv实例的

CallStaticVoidMethod方法调用该Java类的main方法。最后会执行Main方法里面的输出语句,打印Hello World。

面试的时候可能会问到这样的面试题:

Java类加载机制

  JVM将类加载过程划分为三个步骤:装载、链接和初始化。

  1. 装载(Load):装载过程负责找到二进制字节码并加载至JVM中,JVM通过类的全限定名(com.bluedavy. HelloWorld)及类加载器(ClassLoaderA实例)完成类的加载;
  2. 链接(Link):链接过程负责对二进制字节码的格式进行校验、初始化装载类中的静态变量及解析类中调用的接口、类;
  3. 初始化(Initialize):执行类中的静态初始化代码、构造器代码及静态属性的初始化。
0 0
原创粉丝点击