- 博客(9)
- 收藏
- 关注
原创 Java对象引用关系之软引用
JDK 1.2后,Java一共存在四种引用关系,分别是强引用、软引用、弱引用和虚引用。其中强引用是最常见的引用,代表程序运行所必须存在的引用,而软引用是非必须品,通常用于本地缓存。当我们在程序中使用时产生的就是一个强引用,强引用代表的程序的运行必须使用使用该对象,因此被强引用的对象不能被GC回收。而软引用不像强引用一样是必须品,当内存充足时,软引用会被保留,当内存紧张时,会优先回收无任何引用的对象,然后再考虑回收软引用。
2024-06-06 23:51:10
861
原创 JVM之GC篇:(一)引用计数与可达性分析
GC的第一步就是要判断出哪些对象需要被回收。显然易见的是,当一个对象不再被使用后,那么就需要对其进行回收。那么问题就是,如何判断对象是否被使用?本文将介绍两种算法来判断对象是否需要被回收。
2024-06-06 22:28:01
539
原创 JVM运行时数据区域与本地内存概述
JVM在运行时会有一块专用的内存空间,称之为运行时数据区域。本文通过对这块内存区域的各个部分进行讲解,从而加深对于JVM的理解。运行时数据区可分为两大类,一类是所有线程共享的区域,包含方法区和堆;另一类是每个线程私有的,包含程序计数器(Program Counter,PC)、虚拟机栈和本地方法(native method)栈。
2024-06-05 15:37:14
2262
原创 深入理解类加载器
类加载器(ClassLoader)的作用就是将字节码文件加载到内存,以供后续使用。它的应用场景包括SPI机制、热部署、Tomcat隔离等等,学习类加载器是深入掌握Java必不可少的环节之一。类加载器可以分为两类,一类是底层的由JVM提供的类加载器,其负载加载Java自带的类,例如String,Integer等等;另一类是JDK提供的类,这一类是Java程序员需要重点关注的,有时我们需要继承这些类去实现一些定制的类加载器。
2024-05-30 17:19:43
281
原创 深入理解类的生命周期
类的生命周期指的是一个字节码文件(*.class)从被JVM加载到卸载的全过程。深入学习类的生命周期有助于更好地理解我们所写的Java代码,能够分析其运行时的行为。本文中我们重点关注加载、连接以及初始化三个阶段,尤其是初始化阶段可以被程序员干预,使得我们对程序有了更多的控制权。
2024-05-29 22:09:38
1920
原创 深入理解字节码文件
字节码文件是将Java源代码文件(*.java)编译后得到的产物(*.class),由JVM负责将其解释为机器码并运行。或许你会好奇,字节码文件中到底有什么呢?字节码文件中包含了基本信息、常量池、字段、方法以及属性,我们着重关注基本信息、常量池和方法部分,字段和属性比较好理解,不做额外阐述。
2024-05-26 18:39:43
1055
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅