JVM
文章平均质量分 84
RiceVan
爱吃火锅底料
展开
-
【多线程】JMM
JMM供了happens-before 原则来辅助保证程序执行的原子性、可见性以及有序性的问题,它是判断数据是否存在竞争、线程是否安全的依据:原创 2023-04-12 19:57:04 · 715 阅读 · 0 评论 -
【JVM】常量池
常量池Java中可以分为三种:全局字符串常量池、Class文件常量池、运行时常量池。原创 2023-04-12 19:44:09 · 1388 阅读 · 0 评论 -
【JVM】对象创建与访问
Java程序通过栈上的 reference 数据来操作堆上的具体对象。方式有①使用句柄和②直接指针两种。HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。原创 2022-09-19 16:39:42 · 245 阅读 · 0 评论 -
【JVM】JVM垃圾回收机制GC
JVM的垃圾回收机制(Garbage Collected, GC)主要是针对堆内存消亡的对象的回收和内存分配。该类对应的 java.lang.Class 对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。垃圾收集算法包括:标记-清除算法、标记-复制算法、标记整理算法、分代收集。标记算法用于确定哪些对象是可以被回收的,标记出堆内存中可被回收的对象。引用分为强引用、软引用、弱引用、虚引用四种(引用强度逐渐减弱)该类所有的实例都已经被回收,也就是堆中不存在该类的任何实例。原创 2022-09-19 15:56:38 · 2752 阅读 · 0 评论 -
【JVM】类加载
两个类是否相等的前提条件是这两个类是由同一个类加载器加载的。如果两个类来自同一个Class文件,但是被同一个虚拟机下不同的类加载器加载,那么这两个类必定不相等。当 JVM 加载完 Class 字节码文件并在方法区创建对应的 Class 对象之后,JVM 便会启动对该字节码流的校验。接着会为这个类在 JVM 的方法区创建一个对应的 Class 对象,这个 Class 对象就是这个类各种数据的访问入口。在这个阶段,JVM 的主要目的是将字节码从各个位置(网络、磁盘等)转化为二进制字节流加载到内存中。原创 2022-09-19 15:22:12 · 172 阅读 · 0 评论 -
【JVM】JVM运行时内存区域
Java虚拟机运行时内存区域分为五个:程序计数器、Java虚拟机栈、本地方法栈、本地方法区、Java堆、方法区。常量池Java中可以分为三种:全局字符串常量池、Class文件常量池、运行时常量池。2.Class文件常量池(Class Constant Pool)3.运行时常量池(Runtime Constant Pool)1.字符串常量池(String Pool)原创 2022-09-16 15:09:16 · 842 阅读 · 0 评论