![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 79
在下小吉.
我心爱的花在那里,在那颗遥远的星星上。
展开
-
【JVM篇】类的生命周期
Java类的生命周期包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Usage)和卸载(Unloading)等阶段。加载(Loading):将类的字节码文件加载到内存中。加载:根据类的全限定名找到对应的字节码文件,并读取到内存中。验证:验证字节码的合法性、安全性等,确保符合Java虚拟机规范。准备:为类的静态变量分配内存空间,并设置默认初始值。原创 2024-03-15 13:39:30 · 1334 阅读 · 11 评论 -
【JVM篇】什么是运行时数据区
运行时数据区指的是jvm所管理的内存区域,其中分为两大类线程共享:方法区,堆线程不共享:程序计数器,栈(本地方法栈,虚拟机栈)方法区:存放每一个加载的类的基础信息,运行时常量池,字符串常量池堆:存放创建出来的对象本地方法栈和虚拟机栈都存放了线程中执行方法时需要使用的基础数据。程序计数器存放了当前线程执行的字节码指令在内存中的地址。直接内存主要是NIO使用,有操作系统直接管理,不属于JVM内存。原创 2024-03-15 13:38:41 · 946 阅读 · 1 评论 -
【JVM篇】什么是运行时数据区
运行时数据区指的是jvm所管理的内存区域,其中分为两大类线程共享:方法区,堆线程不共享:程序计数器,栈(本地方法栈,虚拟机栈)方法区:存放每一个加载的类的基础信息,运行时常量池,字符串常量池堆:存放创建出来的对象本地方法栈和虚拟机栈都存放了线程中执行方法时需要使用的基础数据。程序计数器存放了当前线程执行的字节码指令在内存中的地址。直接内存主要是NIO使用,有操作系统直接管理,不属于JVM内存。原创 2024-02-19 10:19:31 · 1301 阅读 · 26 评论 -
【JVM篇】有哪些垃圾回收算法
在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!优点:实现简单,只需要在第一阶段给每个对象维护标志位,第二阶段删除对象即可。也叫标记压缩算法,是对标记清理算法中容易产生垃圾碎片问题的一种解决方法。,这样子,新创建的对象就能分到Eden区了。主要分为下面2个阶段。原创 2024-02-19 10:19:05 · 932 阅读 · 0 评论 -
【JVM篇】什么是类加载器,有哪些常见的类加载器
负责在类加载过程中,将字节码信息以流的方式获取并加载到内存当中。原创 2024-02-18 17:48:04 · 1224 阅读 · 9 评论 -
【JVM篇】什么是jvm
JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,可以运行 Java字节码文件,可以运行Java,kotlin,Scala,groovy等语言任务管理器启动的Java进程,其实是一个虚拟机进程,它会执行我们编写好的代码比如我们编写并运行一个Java程序,在进程中就能够看到} }} }运行后发现,程序发送了阻塞并且我们可以发现,这里编译器是使用了java.exe来启动了这个程序并且在当前的进程列表会显示这个进程。原创 2024-02-13 20:35:36 · 2098 阅读 · 17 评论 -
【JVM篇】什么是双亲委派机制
指的是:当一个类加载器接收到加载类的任务的时候,会向上查找是否加载过,再从上到下进行加载(因为要上下查找,不能确定是父亲还是母亲,所以是双亲)向上查找,向下加载。原创 2024-02-13 20:35:02 · 282 阅读 · 1 评论 -
【JVM篇】怎么解决内存泄漏问题
在Java中如果不再使用一个对象,但是这个对象仍然在GC Root的引用链上,这个对象就不会被垃圾回收器回收,这种情况就是内存泄漏少量的内存泄漏可以容忍,但是如果发生了持续的内存泄漏,不管有多大的内存迟早都会被消耗完,最终导致内存溢出。原创 2024-02-13 09:24:58 · 884 阅读 · 7 评论 -
【JVM篇】ThreadLocal中为什么要使用弱引用
在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!原创 2024-02-12 15:54:20 · 2197 阅读 · 14 评论 -
【JVM篇】分析并讲解字节码文件
其中,常量池是字节码文件中最重要的部分之一,它包含了几乎所有的字面量和符号引用,并为虚拟机执行字节码提供了必要的信息。对于Java语言而言,编译Java源代码后会生成字节码文件(以.class为扩展名),其中包含了Java虚拟机(JVM)可理解的指令集。字节码文件可以在不同的平台上运行,因为它们是跨平台的中间表示形式。通过将源代码编译成字节码文件,可以实现代码的平台无关性,并提供更高层次的安全性和运行时的灵活性。通过这些部分的组合,Java虚拟机可以读取和执行字节码文件中的指令,并最终完成程序的执行。原创 2024-02-07 10:22:04 · 1880 阅读 · 4 评论