栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

类加载+对象创建+弱软虚引用+废弃常量和类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

类加载+对象创建+弱软虚引用+废弃常量和类

目录

 2.Java中类的加载顺序介绍:

3. Java对象的创建过程:

简单的介绍一下强引用,软引用,弱引用,虚引用:

如何判断一个常量是废弃常量?

如何判断一个类是无用的类?


 2.Java中类的加载顺序介绍:

答:加载->链接(验证+准备+解析)->初始化(使用前的准备)->使用->卸载。

加载:查找并加载类的二进制数据 

链接:

         验证:确保被加载类的正确性; 

        准备:为类的静态变量分配内存,并将其初始化为默认值;

         解析:把类中的符号引用转换为直接引用;

初始化  顺序依次是:(静态变量、静态初始化块)–>(变量、初始化块)–> 构造器;

->使用->卸载.

3. Java对象的创建过程:

简单的介绍一下强引用,软引用,弱引用,虚引用:

强引用:最普遍的引如果一个对象具有强引用,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,

软引用:内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。

弱引用:

弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。

虚引用:形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收。虚引用主要用来跟踪对象被垃圾回收的活动。

如何判断一个常量是废弃常量?

        假如在常量池中存在字符串 "abc",如果当前没有任何String对象引用该字符串常量的话,就说明常量 "abc" 就是废弃常量,如果这时发生内存回收的话而且有必要的话,"abc" 就会被系统清理出常量池。

如何判断一个类是无用的类?

1.该类所有的实例都已经被回收,也就是 Java 堆中不存在该类的任何实例。

2.加载该类的 ClassLoader 已经被回收。

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

虚拟机可以对满足上述 3 个条件的无用类进行回收,这里说的仅仅是“可以”,而并不是和对象一样不使用了就会必然被回收

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/490428.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号