java jvm

作者:原创时间:2022-04-02
文档

java jvm是什么,让我们一起了解一下?

jvm是java上的一个虚构出来的计算机,是一个位于Java与操作系统之间的中间态。有自己完善的硬件结构,如处理器、堆栈、寄存器等,还具有相应的指令系统。

JVM的作用是什么?

Java程序的跨平台特性主要就是因为JVM实现的。在编译java程序时会将写好的源程序通过编译器编译生成.class文件(又称为字节码文件),之后就是通过JVM内部的解释器将字节码文件解释成为具体平台上的机器指令执行,所以就可以实现java程序的跨平台特性。

JVM内部体系结构大致分为三部分:类装载器(ClassLoader)子系统,运行时数据区和执行引擎。

那java程序运行与JVM的关系是怎样的?

1、java源文件编译生成.class文件(字节码)

2、字节码由JVM解释运行。

因为java程序既要编译同时也要经过JVM的解释运行,所以java被称为半解释语言。

jvm在java应用中的具体案例分析如下:

public class TestClassLoader {
    public static void main(String[] args) {
        Person person_01 = new Person();
        Person person_02 = new Person();
        Person person_03 = new Person();
        //发现person_01,person_02,person_03的hashCode一致,代表这三个实例化对象隶属于一个Class,即Person
        System.out.println(person_01.hashCode());
        System.out.println(person_02.hashCode());
        System.out.println(person_03.hashCode());
        //Person实例化对象person_01通过getClass()方法得到Class对象Person
        Class Person = person_01.getClass();
        //Person通过getClassLoader()方法得到系统类加载器
        ClassLoader myClassLoader = Person.getClassLoader();
        System.out.println(myClassLoader.hashCode());
        //加载器对象myClassLoader通过getParent()方法得到拓展类加载器
        ClassLoader myParentClassLoader = myClassLoader.getParent();
        System.out.println(myParentClassLoader.hashCode());
        //加载器对象myGPClassLoader通过getParent()方法得到引导类加载器
        ClassLoader myGPClassLoader = myParentClassLoader.getParent();
        System.out.println(myGPClassLoader.hashCode()); //发现报错,无法通过方法获取引导类加载器
    }
}
class Person{}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java jxl java kafka java keystore java kmeans java kudu java lamada java leveldb java linklist java linq java list.add java list.contains java locale java localtime java logging java logstash java main java malloc java mapping java math.ceil java matlab java jtextfield java jtable java jta java jstat java jstack java jsonp java jsonfield java jquery java jps java joptionpane java jndi java jmh java jmeter java jit java jetty java jep 计算机管理怎么打开 excel怎么排序 两个excel如何独立显示 微信分组怎么删除