新生代: 1:eden、servicorFrom 复制到ServicorTo,年龄+1首先,把Eden和ServivorFrom区域中存活的对象复制到ServicorTo区域(如果有对象的年龄以及达到了老年的标准,则赋值到老年代区),同时把这些对象的年龄+1(如果ServicorTo不够位置了就放到 ...
分类:
其他好文 时间:
2021-07-19 16:54:13
阅读次数:
0
双亲委派 向上委托,向下加载 收到加载任务后,先交给父类加载器,只有当父类加载器无法完成,才会执行加载 保证只有一个类加载器加载,避免重复加载 破坏:JDK 1.2后才使用,JDK 1.1的核心类没有通过双亲委派定义 如何判断两个Class对象是否相同 class字节码相同 classLoader相 ...
分类:
编程语言 时间:
2021-06-02 12:28:20
阅读次数:
0
1. 为什么需要规范的提交信息? 在团队协作中,使用 Git、SVN 等这些版本管理工具。当我们提交代码的时候,往往需要编写提交信息(commit message)。 而提交信息的主要用途是:告诉这个项目的人,这次代码提交里做了些什么。一般来说,建议小步提交,即按自己的任务步骤来的提交,每一小步都有 ...
分类:
其他好文 时间:
2021-03-17 15:07:29
阅读次数:
0
第一次标记 在进行可达性分析之后发现没有与GC Roots相连接的引用链 筛选 第一次标记后,筛选此对象是否有比要执行finalize()方法 没有必要执行finalize()方法的对象 对象没有覆盖finalize()方法 finalize()方法已经被虚拟机调用过 有必要的对象进入F-Queue ...
分类:
其他好文 时间:
2021-02-22 11:46:59
阅读次数:
0
1.Mark-Sweep算法 整个算法分为标记和清除两个部分。 标记阶段采用可达性分析算法。可达性分析算法从GC roots出发,寻找引用的对象,如果对象被遍历到,则标记。 清除阶段对目标空间进行遍历,若对象没有被标记过,则清除该对象。时间复杂度为O(n),结果会导致空间中存在大量碎片(零碎空间), ...
分类:
编程语言 时间:
2021-02-15 12:21:19
阅读次数:
0
状态管理-salt安装apache 编辑主配置文件,定义几个环境。 vim /etc/salt/master file_roots: base: - /srv/salt/base dev: - /srv/salt/dev test: - /srv/salt/test prod: - /srv/sal ...
分类:
其他好文 时间:
2020-12-30 11:27:09
阅读次数:
0
# 使用FormHello.py文件中的类Form创建app import sys from PyQt5 import QtWidgets import FormHello app = QtWidgets.QApplication(sys.argv) # 创建窗体的基类Qwidget的实例 base ...
分类:
其他好文 时间:
2020-12-02 12:38:43
阅读次数:
7
Java中的内存管理 要了解Java中的内存泄漏,首先就得知道Java中的内存是如何管理的。 在Java程序中,我们通常使用 new 为对象分配内存,而这些内存空间都在堆上。 Java判断对象是否可以回收使用的而是可达性分析算法。 这个算法的基本思路就是通过一系列名为 "GC Roots" 的对象作 ...
分类:
编程语言 时间:
2020-11-19 12:22:42
阅读次数:
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
JVM垃圾回收的算法很多,但是不管是哪种算法,在进行GC时大致的流程都是差不多的,主要有以下3个过程: ###1. 枚举根节点 这个过程主要是找到所有的GC Roots对象,这些对象一般发生在JVM虚拟机栈栈帧、常量池中的静态对象、方法区中静态类属性引用、本地方法栈中引用的对象。这个过程会发生STW ...
分类:
其他好文 时间:
2020-07-12 13:56:39
阅读次数:
63