![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Jvm
文章平均质量分 87
一江溪水
这个作者很懒,什么都没留下…
展开
-
JVM垃圾收集器
垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 垃圾收集器分类 目前,有很多的垃圾收集器,各类垃圾收集器各有优缺点,但目前为止还没有最好的 垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合自己的垃圾 收集器 下图是7 种垃圾回收器 Serial收集器 Serial收集器是最基本、发展历史最久的收集器,这个收集器是采用标记-复制算法的单线程的收集器。 单线程一方面意味着他只会使用一个 CPU 或者一条线程去完成垃圾收集工作, 另一方面也意味着他进行垃原创 2021-08-18 14:29:35 · 70 阅读 · 0 评论 -
JVM垃圾回收机制
JVM垃圾回收机制 JVM虚拟机中共有三种垃圾回收算法 标记-清除(Mark-Sweep)算法; 标记-复制(coping)算法; 标记-整理(Mark-Compact)算法; 这三种方法各有优缺点,实践上,目前Java虚拟机使用的是分代收集算法,之前我们说过JVM中的堆区是分为老年代和新生代,分代收集算法集合三种算法的优缺点,提供垃圾回收的效率,我们先来看看这三种算法 标记-清除(Mark-Sweep)算法 标记 - 清除(Mark-Sweep)算法是最基本的垃圾回收算法。顾名思义,先标记,然后清除;原创 2021-08-17 16:55:59 · 66 阅读 · 0 评论 -
如何判断对象是否垃圾
如何判断对象是否是垃圾 堆中几乎放着所有的对象实例,对堆垃圾回收前的第步就是要判断哪些对象已经死亡(即不能再被任 何途径使用的对象),方便垃圾回收器对这些死亡的对象进行回收。 在说如果判断对象是否为垃圾前,我们需要了解一些其他概念 垃圾回收器 JVM 为 Java 提供了垃圾回收机制,其实是一种偏自动的内存管理机制。简单来说,垃圾回收器会自动追踪所有正在使用的对象,并将其余未被使用的对象标记为垃圾,不需要开发者手动进行垃圾回收,JVM 自动进行垃圾回收,释放内容。 垃圾回收 如果不进行垃圾回收,内存迟早都会原创 2021-08-16 19:45:25 · 425 阅读 · 0 评论 -
JVM运行时数据区(二)
JVM运行时数据区(二) 上篇文章写了JVM运行时数据区中的程序计数器,Java虚拟机栈和本地方法栈。这篇文章我们接着班Java运行时数据区中的堆和方法区说一下 方法区(Method Area) 方法区,也称非堆(Non-Heap),是一个被线程共享的内存区域。其中主要存储加载的类字节码、class/method/field 等元数据对象、static-final 常量、static 变量、JIT 编译器编译后的代码等数据。 方法区也叫永久代 方法区和永久代的关系很像Java中接口和类的关系,类实现了接原创 2021-08-15 13:21:25 · 87 阅读 · 0 评论 -
JVM运行时数据区(一)
JVM运行时数据区 Java运行时数据区可以细分为五个模块:栈,堆,寄存器,方法区和本地方法栈 在Java8之后,方法区改成了元空间,有一些区域是线程私有的,有一些是线程共享的 线程私有 程序计数器 Java 虚拟机栈 本地方法栈 线程共享 Java 堆 方法区 程序计数器 程序计数器也叫寄存器,每个线程启动的时候,都会创建一个 PC(Program Counter,程序计数器)寄存器。PC 寄存器里保存有当前正在执行的 JVM 指令的地址。 程序计数器是一块比较小的内存空间,是当前线程所执行的原创 2021-08-14 17:40:46 · 99 阅读 · 0 评论 -
Java类加载机制
类加载过程 Java类加载过程为:加载-链接-初始 链接的过程包括验证,准备,解析 加载 把编译后的class字节码文件通过类加载器装载入内存中,并将这些数据转换成方法区中的运行时数据(静态变量、静态代码块、常量池等),在堆中生成一个Class类对象代表这个类(反射原理),作为方法区类数据的访问入口。 通过全类名获取定义此类的二进制字节流 将字节流所代表的静态存储结构转换为方法区的运行时数据结构 在内存中生成一个代表该类的Class 对象,作为方法区这些数据的访问入口 验证 保证加载进来的字节流符合虚原创 2021-08-06 18:22:51 · 86 阅读 · 0 评论