JVM学习笔记(二)JVM垃圾回收机制

今天记录并巩固下学到的JVM垃圾回收的相关知识,在JVM中,垃圾回收主要发生在堆中,在回收对象前JVM首先需要确认哪些对象是可回收的,一般判断对象是否应该回收有两种方式:

引用计数算法

顾名思义,引用计数算法其实就是计算某个对象的引用数。首先为每个对象添加一个引用计数器,当有一个地方引用了某一对象,则该计数器加1;当某一地方不在引用时,则引用计数器减1。引用计数算法很实用,且使用起来效率也很不错,但是无法解决对象间的循环引用从而导致每个对象的引用计数器都不为0-----GC无法对对象进行回收。

可达性分析算法

目前JVM的主要使用的算法。该算法的核心就是通过可达性来作为判断对象是否可被回收的依据。通过一系列称为“GC-ROOT”的对象作为起点向下进行检索,检索的路径称为引用链,若某一对象对于所有引用链均不可达,则可判断该对象为可回收。在JAVA中,可作为GC-ROOT节点的为:

    1 虚拟机栈中引用的对象;

    2 方法区中类中静态属性引用的对象;

    3 方法区中常量引用的对象;

    4 本地方法栈中引用的对象。

JAVA中对引用进行了划分,使我们能够更好地管理对象以及内存,划分出的引用类型为强,软,弱,虚4中类型:

    1 强引用(Strong Reference):对于拥有强引用的对象,JVM在任何时候都不会回收

    2 软引用(Soft Reference):对于拥有软引用的对象,只有当JVM内存不足时才会被回收

    3 弱引用(Weak Reference):对于拥有弱引用的对象,无论内存是否够,JVM都会在下一个GC回收周期将该对象回收

    4 虚引用(Phantom Reference):对于拥有虚引用的对象,当该对象被回收时收到一个系统通知

当某一对象被判定“不可达”时,JVM不会立刻回收,而是会进行至少两次标记,在第一次标记之后进行筛选,筛选条件为是否可执行finalize()方法,若该对象没有覆盖finalize()方法或者finalize()方法已经被调用过,则JVM不会执行该方法。

在调用finalize()方法之后若该对象与任意GC-ROOT建立了联系,则不会被JVM回收,反之则被回收。注意:同一个对象finalize()方法只会被执行一次。

事实上虽然不是必须,但是方法区也是可以被垃圾回收的,回收的主要为两类:废弃常量与无用的类。常量的回收机制与对象相似,若某一在常量池的常量未被引用,则在必要到的情况下可被回收。而判断类是否无用则需要以下3个条件:

    1 在JAVA中不存在该类的实例;

    2 该类对应的ClassLoader已经被回收;

    3 该类对应的 java.lang.Class 对象不存在引用,无法在任何地方通过反射机制访问该类的方法。

当我们需要大量使用反射或者频繁自定义ClassLoader时,可以考虑对方法区进行垃圾回收。

智慧档案馆建设方案旨在通过先进的信息技术和智能化手段,全面提升档案管理的效率和安全性,满足现代档案管理的需求。方案涵盖了软件、硬件、网络及安全、分布式存储、数据保护、机房建设等多个方面,确保档案馆在数字化、智能化转型中具备高效、安全、可扩展的能力。 在软件部分,智慧档案馆平台集成了档案接收、管理、保存、智能库房管理、辅助鉴定、编研、统计、内部利用、电子阅览室智能服务等功能模块。通过智能化的档案接收和管理流程,系统能够高效处理各类档案数据,支持历史数据迁移、数字化成果接收、征集档案接收等操作。智能库房管理模块通过虚拟库房、调卷归卷管理、温湿度管理等功能,确保实体档案的安全保管和高效利用。此外,系统还提供了智能辅助鉴定、编研、统计等功能,帮助档案馆实现档案的智能化管理和利用。 硬件部分则包括网络及安全设备、分布式存储、数据保护一体机、离线备份设备、机房建设等。网络及安全设备如核心交换机、汇聚交换机、下一代防火墙、终端安全管理系统等,确保了档案馆网络的高效运行和数据的安全防护。分布式存储系统通过全分布式架构和数据冗余技术,提供了高可伸缩性和高可用性,支持多副本或EC冗余机制,确保数据的安全性和快速重构。数据保护一体机和离线备份设备则通过多种备份和恢复机制,确保数据的完整性和可恢复性。机房建设部分则通过UPS、精密配电柜、精密空调、冷通道机柜等设备,确保机房的稳定运行和高效管理。 智慧档案馆建设方案不仅顺应了国家档案信息化建设的政策要求,还结合了云计算、区块链等新技术,确保了系统的先进性和安全性。通过智能化的档案管理和高效的数据保护机制,档案馆能够更好地服务于公众,提升档案利用效率,实现档案资源的共建共享。这一方案不仅是档案数字化转型的重要举措,也为未来档案馆的智能化发展奠定了坚实基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值