• 了解JVM


    一.了解JVM

    1.1什么是JVM

    JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟计算机功能来实现的,JVM屏蔽了与具体操作系统平台相关的信息,Java程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改的运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

    虚拟机可以分为系统虚拟机和程序虚拟机

    系统虚拟机是一种虚拟化技术,它模拟整个计算机硬件环境,包括处理器、内存、存储和外部设备。它的主要目标是在单个物理计算机上同时运行多个操作系统。每个虚拟机都具有独立的操作系统和应用程序,就像在不同的物理计算机上运行一样。系统虚拟机的例子包括VMware、VirtualBox和Hyper-V。

    程序虚拟机是一种虚拟化技术,它仅模拟计算机上的一个单独的应用程序运行环境,而不是整个操作系统。它的主要目标是提供一个独立的运行环境,使应用程序能够在不同的操作系统上运行而无需修改。程序虚拟机通常用于解决跨平台兼容性的问题,模拟一个应用程序的运行环境,使应用程序能够跨平台运行。常见的程序虚拟机包括Java虚拟机(JVM)。

    1.2JRE/JDK/JVM

    JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API)。

    JRE(Java Runtime Environment,Java运行环境), 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合,主要包括 Java 虚拟机(JVM)、Java 基础类库(Class Library)。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)

    JVM(Java Virtual Mechinal)是JRE的一部分,叫做JAVA虚拟机,它是整个java实现跨平台的最核心的部分,负责解释执行并运行字节码文件(.class)。

    1.3JVM的整体结构

    ClassLoader:Java 代码编译成二进制后,会经过类加载器,这样才能加载到 JVM 中运行。

    Method Area:类是放在方法区中。

    Heap:类的实例对象。

    当类调用方法时,会用到 JVM Stack、PC Register、本地方法栈。

    方法执行时的每行代码是有执行引擎中的解释器逐行执行,方法中的热点代码频繁调用的方法,由 JIT 编译器优化后执行,GC 会对堆中不用的对象进行回收。需要和操作系统打交道就需要使用到本地方法接口。
     

  • 相关阅读:
    头条系统-05-延迟队列精准发布文章-概述&添加任务(db和redis实现延迟任务)、取消&拉取任务&定时刷新(redis管道、分布式锁setNx)
    软考网络工程师笔记-分值分布
    TransactionSynchronizationManager的使用场景以及原理分析
    移动电源外贸出口亚马逊UL2056测试报告周期
    【深度学习】优化器详解
    【牛客网-公司真题-前端入门篇】——奇安信秋招笔试-前端-卷3
    计算机科学领域有哪些优秀的博客?
    Python基础语法(三)—— 函数的定义和使用
    2023_Spark_实验十七:导入招聘大数据(项目)
    【慕课-湖南大学】服务设计与商业模式
  • 原文地址:https://blog.csdn.net/WeBot6/article/details/132983175