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