JVM、(一)JVM开篇

@


一、JVM是什么?

  • 定义:
    Java Virtual Machine - java程序的运行环境 (Java 二进制字节码的运行环境)
    比如 Helloworld.java 程序通过javac编译成了 class字节码然后被加载到java虚拟机中运行。
  • 好处:
    1. 跨平台实现的基石。 Java程序一次编译,到处运行,JVM屏蔽了字节码和底层操作系统之间的差异,使得编译后的二进制字节码文件能够运行在不同的操作系统平台上。
    2. 自动内存管理,垃圾回收功能
    3. 数组下标越界越界检查
    4. 多态
  • 比较(jre、jdk、jvm):
    ![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210301103607997.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjg0OTg1,size_16,color_FFFFFF,t_70)
    jre:java runtime environment(Java运行时环境) jvm结合一些基础类库构成了jre;
    jdk:java development kit(Java 开发工具包) jvm+基础类库+编译工具构成 jdk;

二、常见的JVM

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210301104104524.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjg0OTg1,size_16,color_FFFFFF,t_70)

三、学习路线

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210301104635177.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjg0OTg1,size_16,color_FFFFFF,t_70)
重点:

  • JVM主要涉及三大块: 类加载器ClassLoader、JVM内存结构(方法区、堆、虚拟机栈、本地方法栈、程序计数器)、执行引擎(解释器、即时编译器、垃圾回收)
  • 一个java程序通过编译为二进制字节码文件,但是字节码文件必须通过类加载器ClassLoader 才能成功加载到JVM中去执行。方法区存放是的java类;堆存放的是类实例化的对象;当对象调用方法时会使用到虚拟机栈、本地方法栈、程序计数器;方法执行时是由执行引擎的解释器逐行解释执行的,方法里的热点代码(频繁调用)会被JIT Compiler即时编译器优化后执行;GC会对堆中一些不再引用的对象进行回收。Java还有一些方法需要调用底层操作系统相关方法,通过本地方法接口实行。
posted @ 2023-02-24 21:16  Stitches  阅读(40)  评论(0)    收藏  举报