1、强引用 在代码中普遍存在的引用赋值 类似于使用new关键字创建的引用 存在强引用关系的对象, 任何情况下,垃圾回收器都不会回收 2、软引用 描述一些还有用,但非必须的对象 使用SoftReference类实现软引用 存在软引用关系的对象, 在系统将要发生内存溢出异常前,会对这些对象进行第二次回收 ...
分类:
其他好文 时间:
2021-02-22 11:47:14
阅读次数:
0
CMS是老年代垃圾收集器,在收集过程中可以与用户线程并发操作。它可以与Serial收集器和Parallel New收集器搭配使用。CMS牺牲了系统的吞吐量来追求收集速度,适合追求垃圾收集速度的服务器上。可以通过JVM启动参数:-XX:+UseConcMarkSweepGC来开启CMS。 CMS收集过 ...
分类:
其他好文 时间:
2021-02-02 10:50:16
阅读次数:
0
JVM调优问题简单总结 jvm调优在我看来就是扩扩内存,修改一下虚拟机运行参数,再不行换个垃圾回收器,比如G1什么的。 但是,对运行时问题的定位却是个大问题,今天就来总结一下,这两天学习的关于jvm调优的一些查用的排查方式 CPU突然飙升怎么排查 因为在服务器上不只有Java进程还有其他进程,所以需 ...
分类:
其他好文 时间:
2020-12-29 11:44:09
阅读次数:
0
对于Java程序中对象而言,如果这个对象没有任何引用变量引用它,那么这个对象将不可能被程序访问,因此可认为它是垃圾;只要有一个以上的引用变量引用该对象,该对象就不会被垃圾回收。 对于Java的垃圾回收器来说,它使用有向图来记录和管理堆内存中的所有对象,通过这个有向图就可以识别哪些对象是“可达的”(有 ...
分类:
其他好文 时间:
2020-12-19 12:59:31
阅读次数:
1
从不同角度分析垃圾收集器,可以将其划分为不同的模型。按线程数分,可以分为串行垃圾回收器和并行垃圾回收器;按照工作模式分,可以分为并发式垃圾回收器和独占式垃圾回收器; ...
分类:
编程语言 时间:
2020-12-15 11:40:39
阅读次数:
7
新生代垃圾收集器 1. Serial收集器 serial收集器即串行收集器,是一个单线程收集器。 串行收集器在进行垃圾回收时只使用一个CPU或一条收集线程去完成垃圾回收工作,并且会暂停其他的工作线程(stop the world),直至回收完成。适用于运行在client模式下的JVM。 在单CPU年 ...
分类:
其他好文 时间:
2020-12-01 11:55:56
阅读次数:
4
有两种方式:1). 实现Cloneable接口并重写Object类中的clone()方法;2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下。 public class MyUtil { private MyUtil() { throw n ...
分类:
其他好文 时间:
2020-11-17 12:41:19
阅读次数:
6
python中对象的管理与引用计数相关,,当引用计数变为0时,该对象便会被垃圾回收器回收,当撤销对一个对象的引用时,python 解释器对对象以及计数管理会分为以下两步: 1,使用引用计数减一 2.判断该计数是否为0,如果为0,则销毁该对象 假设a,b线程同时引用一个对象obj,此时该对象的引用计数 ...
分类:
编程语言 时间:
2020-11-16 14:01:33
阅读次数:
19
1. 判断对象存活 回收内存首先需要判断,那些内存需要回收。即需要判断那些对象还存活着,则这些是不需要被回收的。 (1) 引用计数法 原理:对象中添加一个引用计数器。被引用则累计。则计数器中数值大于0,则代表仍然被引用,不能被回收。 缺点:不能解决循环引用的情况。 (2) 可达性分析法 原理:从一些 ...
分类:
其他好文 时间:
2020-11-10 10:27:32
阅读次数:
8
1.Serial收集器(新生代) (1)单线程收集器 (2)采用复制算法,用于新生代垃圾回收 (3)垃圾回收期间需要STW(StopTheWorld),STW表示垃圾回收线程不与用户线程并发执行2.SerialOld收集器(老年代) (1)与Serial相似 (2)采用标记整理算法,用于老年代的立即回收3.ParNew收集器(新生代) (1)是Serial的多线程版本 (2)除此之外
分类:
其他好文 时间:
2020-10-30 12:24:40
阅读次数:
14