07 2023 档案

摘要:JVM-对象实例化# JVM-对象实例化 ## 1.创建对象的方式 - new:最常见的方式、Xxx的静态方法,XxxBuilder/XxxFactory的静态方法 - Class的newInstance方法:反射的方式,只能调用空参的构造器,权限必须是public - Constructor的newInstance 阅读全文
posted @ 2023-07-26 11:44 coffee_baby 阅读(35) 评论(0) 推荐(0) 编辑
摘要:# JVM方法区 《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。“但对于HotSpotJVM而言,方法区还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开。方法区看作是一块独立于Java堆的内存空间。 阅读全文
posted @ 2023-07-24 20:03 coffee_baby 阅读(285) 评论(0) 推荐(0) 编辑
摘要:JVM运行时数据区之堆空间# JVM运行时数据区之堆空间 ## 1.核心概述 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。堆区在**JVM 启动的时候即被创建**,其空间大小也就确定了,是**JVM管理的最大一块内存空间**。 《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在 阅读全文
posted @ 2023-07-22 17:37 coffee_baby 阅读(120) 评论(0) 推荐(0) 编辑
摘要:JVM虚拟机栈# JVM虚拟机栈 ## 1.概述 ### 1.1背景 - 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 - 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令 ### 1.2概念 **JVM虚拟机栈是J 阅读全文
posted @ 2023-07-21 15:37 coffee_baby 阅读(223) 评论(0) 推荐(0) 编辑
摘要:# JVM程序计数器 ## 1.介绍 JVM中的程序计数寄存器 (Proqram Counter Register)中,Reqister 的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。 CPU只有把数据装载到寄存器才能够运行 这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或 阅读全文
posted @ 2023-07-19 15:45 coffee_baby 阅读(81) 评论(0) 推荐(0) 编辑
摘要:# JVM运行时数据区 ## 1.概述 内存是非常重要的系统资源,是硬盘和CPU 的中间仓库及桥梁承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行不同的JVM对于内存的划分方式和管理机制存在着部分差异。 下图是经典的J 阅读全文
posted @ 2023-07-19 15:43 coffee_baby 阅读(30) 评论(0) 推荐(0) 编辑
摘要:# 双亲委派机制 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种任务委派模式 ## 一.工作原理: 1)如果一个类 阅读全文
posted @ 2023-07-19 10:15 coffee_baby 阅读(127) 评论(0) 推荐(0) 编辑
摘要:# JVM类的加载和类的加载器 ## 一.类的加载过程 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象 阅读全文
posted @ 2023-07-18 17:49 coffee_baby 阅读(22) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示