合集-JVM

摘要:运行时数据区域Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。 JDK 1.8 和之前的版本略有不同,我们这里以 JDK 1.7 和 JDK 1.8 这两个版本为例介绍。 JDK 1.7: JDK 1.8: 线程私有的: 程序计数器 虚拟机栈 本地方法栈 线 阅读全文
posted @ 2024-07-11 21:19 Duancf 阅读(14) 评论(0) 推荐(0) 编辑
摘要:Java中的对象一定是在堆上分配的吗? JVM的内存分配策略 首先回顾一下JVM的内存分配策略。 JVM的内存包括方法区、堆、虚拟机栈、本地方法栈、程序计数器。 一般情况下JVM运行时的数据都是存在栈和堆上的。 栈用来存放一些基本变量和对象的引用,堆用来存放数组和对象,也就是说new出来的实例。 但 阅读全文
posted @ 2024-07-12 14:16 Duancf 阅读(11) 评论(0) 推荐(0) 编辑
摘要:引用类型 无论是通过引用计数法判断对象引用数量,还是通过可达性分析法判断对象的引用链是否可达,判定对象的存活都与“引用”有关。 JDK1.2 之前,Java 中引用的定义很传统:如果 reference 类型的数据存储的数值代表的是另一块内存的起始地址,就称这块内存代表一个引用。 JDK1.2 以后 阅读全文
posted @ 2024-07-12 16:49 Duancf 阅读(19) 评论(0) 推荐(0) 编辑
摘要:类加载 加载 java数据类型分为基本数据类型和引用数据类型, 基本数据类型由虚拟机预先定义,引用数据类型才需要类的加载过程。 类的加载,就是将java类的字节码文件加载到内存中,并通过字节码在内存中构建出类的原型 类模板对象。 jvm把字节码中的常量池,类字段,类方法等信息存储到类模板中,这样jv 阅读全文
posted @ 2024-07-12 16:52 Duancf 阅读(7) 评论(0) 推荐(0) 编辑
摘要:什么是双亲委派机制 首先,我们知道,虚拟机在加载类的过程中需要使用类加载器进行加载,而在Java中,类加载器有很多,那么当JVM想要加载一个.class文件的时候,到底应该由哪个类加载器加载呢? 这就不得不提到"双亲委派机制"。 首先,我们需要知道的是,Java语言系统中支持以下4种类加载器: Bo 阅读全文
posted @ 2024-09-04 20:23 Duancf 阅读(12) 评论(0) 推荐(0) 编辑
摘要:Java 对象的创建过程 Java对象创建的过程主要分为五个步骤,下面我将详细介绍这五个步骤。 Step1:类加载检查 虚拟机遇到一条new指令时,首先会去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且会检查这个符号引用所指向的类是否已经完成加载、连接和初始化,如果没有,必须先执行相 阅读全文
posted @ 2024-09-16 22:19 Duancf 阅读(29) 评论(0) 推荐(0) 编辑
摘要:<clinit> 类变量的赋值语句 静态代码块的内容 <init> 实例变量的赋值语句 实例代码块 构造方法 阅读全文
posted @ 2024-10-06 16:33 Duancf 阅读(5) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示