JVM工作原理理解 柔光的暖阳◎ 2022-03-11 07:46 211阅读 0赞 #### 1. 类加载器 #### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21zdDEwMTA_size_16_color_FFFFFF_t_70] ##### (1) 虚拟机类加载器 ##### **启动类加载器(Bootstrap)** > 加载JRE自带的 rt.jar 中类文件(eg:D:\\Program Files\\Java\\jdk1.8.0\_172\\jre\\lib\\rt.jar) **扩展类加载器(Extendsion)** > 加载ext文件夹中自定义jar的类文件(eg:D:\\Program Files\\Java\\jdk1.8.0\_172\\jre\\lib\\ext) **应用类加载器(App)** > 加载当前应用的classpath路径下的class文件 层级关系(高—>低):启动类加载器—>扩展类加载器—>应用类加载器 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21zdDEwMTA_size_16_color_FFFFFF_t_70 1] 注:启动类加载器获取结果值是null ##### (2) 自定义类加载器 ##### java虚拟机加载器继承了ClassLoader抽象类 #### 2.内存空间 #### JVM内存空间包含:方法区、Java栈、本地方法栈、java堆、程序计数器。 ##### (1) 方法区 ##### 方法区是各个线程共享的区域,存放类信息、常量、静态变量。方法区逻辑上属于堆的一部分,但是为了与堆进行区分,通常又叫“非堆”。常量池是方法区的一部分,存放的是编译期生产的各种字面量和符号引用。 ##### (2) java堆(JavaHeap) ##### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21zdDEwMTA_size_16_color_FFFFFF_t_70 2] 1.堆是用来存放对象的,几乎所有对象都放在这里,被线程共享。 2.堆又可以分为年轻代和年老代,年轻代可以分为 Eden区和两个幸存区,逻辑是每次使用 Eden区和其中一个幸存区,回收时将其还存活着的对象一次性的复制到另一个幸存区中,最后清理刚才使用的Eden和其中一个幸存区。新建对象就在 Eden区,但是并不是对象最活跃的区域,对象最活跃的区域是年老代,因为经过各种垃圾回收之后对象都存到这里。 ##### (3) java栈 ##### 栈(栈内存)主管Java程序的运行,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束该栈就0ver,生命周期和线程一致,是线程私有的。**基本类型的变量、实例方法、引用类型变量都是在函数的栈内存中分配** [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21zdDEwMTA_size_16_color_FFFFFF_t_70]: /images/20220311/feaf94fdfd6644d9936ca15ed5e140e9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21zdDEwMTA_size_16_color_FFFFFF_t_70 1]: /images/20220311/a0cc5245374f42f1b5ec6bef54067415.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21zdDEwMTA_size_16_color_FFFFFF_t_70 2]: /images/20220311/533c5824d8ac4b9da9a1619137f13dcb.png
相关 深入理解Java虚拟机(JVM)的工作原理 Java虚拟机(JVM)是运行Java程序的平台。它的工作原理可以分为以下几个关键部分: 1. **字节码**:Java程序编译后生成的是字节码(.class文件)。字节码不 红太狼/ 2024年09月18日 10:15/ 0 赞/ 4 阅读
相关 深入理解Java虚拟机(JVM)工作原理 Java虚拟机(JVM)是Java语言运行的环境。它是操作系统与应用程序之间的抽象层,负责解释执行Java字节码。 以下是JVM工作原理的一些关键点: 1. **字节码生成 偏执的太偏执、/ 2024年09月14日 22:39/ 0 赞/ 9 阅读
相关 深入理解Java虚拟机(JVM)的工作原理 Java虚拟机(JVM)是运行Java程序的实体。它的工作原理可以分为以下几个主要部分: 1. **类加载**:JVM首先需要将源代码转换为字节码,这个过程由编译器完成。然后 落日映苍穹つ/ 2024年09月11日 16:21/ 0 赞/ 24 阅读
相关 JVM工作原理介绍 *一、** **JVM****的生命周期** 1. JVM实例对应了一个独立运行的java程序它是进程级别 a) 启动。启动一个Java程序时,一个JVM实例就产生了... 以你之姓@/ 2024年04月18日 21:12/ 0 赞/ 30 阅读
相关 JVM工作原理和工作流程浅谈 本文主要介绍了关于JVM工作原理简述,主要弄清楚jvm运行的来龙去脉,感兴趣的可以一起来了解一下 JAVA之所以跨平台,是因为有JVM这么一个编译和运行机器,它令对于系统的操 川长思鸟来/ 2024年03月22日 23:31/ 0 赞/ 45 阅读
相关 JVM虚拟机详解------jvm栈工作原理 1. 前言 我之前的一篇文章[JVM虚拟机详解][JVM]大致讲了一下JVM,经过一段时间的工作学习,对JVM有了更加深入和详细的见解,JVM的内容实在是太多,所以打算通 梦里梦外;/ 2022年10月25日 04:50/ 0 赞/ 192 阅读
相关 Jvm工作原理学习笔记 一、 JVM的生命周期 1. JVM实例对应了一个独立运行的java程序它是进程级别 a) 启动。启动一个Java程序时,一个JVM实例 超、凢脫俗/ 2022年08月08日 13:49/ 0 赞/ 135 阅读
相关 JVM 工作原理和流程 转载自 [https://blog.csdn.net/qq\_33384065/article/details/80282023][https_blog.csdn.net_qq £神魔★判官ぃ/ 2022年05月14日 04:41/ 0 赞/ 206 阅读
相关 JVM工作原理理解 1. 类加载器 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG 柔光的暖阳◎/ 2022年03月11日 07:46/ 0 赞/ 212 阅读
还没有评论,来说两句吧...