社区
Java SE
帖子详情
请问static final资源是什么时候会被标识为可回收的
Sodino
2009-12-04 03:23:04
我有一个Image属性标识为static final。由于是final,所以初始化后就不可能再被赋值为null了。那是不是说这个Image就会一直存在于内存直到这个程序被我关闭掉才会被回收呢??
谢谢...
...全文
407
9
打赏
收藏
请问static final资源是什么时候会被标识为可回收的
我有一个Image属性标识为static final。由于是final,所以初始化后就不可能再被赋值为null了。那是不是说这个Image就会一直存在于内存直到这个程序被我关闭掉才会被回收呢?? 谢谢...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dxhangel
2009-12-04
打赏
举报
回复
因为是static类型的。只能是等到jvm停止的时候才能释放!
smartcatiboy
2009-12-04
打赏
举报
回复
[Quote=引用 7 楼 sodino 的回复:]
引用 1 楼 smartcatiboy 的回复:
回收是垃圾处理器的事,关掉也不一定回收
普通方法隶属于用户类,static方法属于用户类的meta类(可以用于yourClass.getClass获得)
只要该用户类有引用,meta类就不会被回收。木引用的化就看垃圾回收器的心情了。
怎么扯上meta了??
[/Quote]
static 不是储存在用户类的对象中的,而是储存在描述用户类的meta类的对象中的。用户类实例化前要先实例meta类中的各个static
Sodino
2009-12-04
打赏
举报
回复
[Quote=引用 1 楼 smartcatiboy 的回复:]
回收是垃圾处理器的事,关掉也不一定回收
普通方法隶属于用户类,static方法属于用户类的meta类(可以用于yourClass.getClass获得)
只要该用户类有引用,meta类就不会被回收。木引用的化就看垃圾回收器的心情了。
[/Quote]
怎么扯上meta了??
[Quote=引用 2 楼 lxd520123 的回复:]
这个JAVA里有自动回收,设置NULL就是一个申请
//已经是final了,不能再重新赋值为null了
你这样情况具体没操作过,
但是我觉得使用finallize应该能强制回收吧
//finalize()只是在回收前进行一些处理操作,跟这问题有什么关系呢??
[/Quote]
[Quote=引用 3 楼 bayougeng 的回复:]
是你理解的那样。
[/Quote]
谢谢
[Quote=引用 4 楼 smartcatiboy 的回复:]
java内存的回收由垃圾回收处理,finalize一般只用于使用本地代码的是内存释放工作(垃圾回收管不了),在纯java程序里,尽量不要自己写finalize。
如果需要强制回收不用的东西,可以使用System.gc()。//gc()也只是通知VM说我想执行回收操作,只是想而已,又不是真的做。与本问题无关
[/Quote]
[Quote=引用 5 楼 zhangwenmin 的回复:]
如果程序中没有引用那么会被系统垃圾回收
[/Quote]
我想这个引用是一直在的,那应该就是回收不了的了,
[Quote=引用 6 楼 lxd520123 的回复:]
System.gc()也要看垃圾处理器的心情的,也是不一定管用的
so
这个事情还是让JAVA自己来吧,不伤大雅的
[/Quote]
唉,好无奈啊。
bunrise
2009-12-04
打赏
举报
回复
System.gc()也要看垃圾处理器的心情的,也是不一定管用的
so
这个事情还是让JAVA自己来吧,不伤大雅的
zhangwenmin
2009-12-04
打赏
举报
回复
如果程序中没有引用那么会被系统垃圾回收
smartcatiboy
2009-12-04
打赏
举报
回复
java内存的回收由垃圾回收处理,finalize一般只用于使用本地代码的是内存释放工作(垃圾回收管不了),在纯java程序里,尽量不要自己写finalize。
如果需要强制回收不用的东西,可以使用System.gc()。
bayougeng
2009-12-04
打赏
举报
回复
是你理解的那样。
bunrise
2009-12-04
打赏
举报
回复
这个JAVA里有自动回收,设置NULL就是一个申请
你这样情况具体没操作过,但是我觉得使用finallize应该能强制回收吧
smartcatiboy
2009-12-04
打赏
举报
回复
回收是垃圾处理器的事,关掉也不一定回收
普通方法隶属于用户类,static方法属于用户类的meta类(可以用于yourClass.getClass获得)
只要该用户类有引用,meta类就不会被回收。木引用的化就看垃圾回收器的心情了。
static
final
java_java里的
static
和
final
本文详细介绍了Java中
static
和
final
的用法。
static
用于修饰成员变量和方法,使得它们成为类级别的共享
资源
,无需实例化即可访问。
final
则用于修饰变量和方法,确保其值不可更改或方法不可被重写。
static
变量在内存中只有一份拷贝,而实例变量每个对象都有一个。
final
常量在类加载时初始化,且不能被修改。同时,
static
方法不能访问非
static
成员,但可通过对象引用。此外,
static
代码块在类加载时执行一次,常用于静态变量的初始化。
Java
标识
符和关键字(
static
,
final
,abstract,interface)
本文详细解析了Java中的关键字,包括
标识
符命名规则、
static
与
final
关键字的使用、抽象类与接口的区别等内容,帮助读者深入理解Java语言特性。
面向对象:访问控制,
final
,
static
本文围绕Java展开,介绍了访问控制,包括自主、强制、基于对象、任务和角色的访问控制模型,其作用是保障网络
资源
安全。还阐述了
final
关键字对成员变量、局部变量等的修饰规则,以及
static
关键字对变量和方法的修饰特点,如
static
变量属类范畴,
static
方法可通过类名引用。
初学呐喊!——Java中
static
关键字和
final
关键字的用法
本文深入探讨Java中
final
和
static
关键字的用法及其对类、属性、方法的影响。解析
final
修饰符如何确保不可变性,
static
如何实现共享
资源
。通过代码示例说明
final
属性赋值方式及
static
的加载机制。
深入理解 Java
static
关键字
本文系统剖析 Java
static
关键字的核心机制与工程实践,涵盖静态变量、静态常量(
static
final
)、静态方法、静态代码块、静态内部类、静态导入、接口静态方法等维度,深入讲解其对类加载、内存模型、线程安全及初始化顺序的影响,并指出常见误区如静态上下文访问实例成员、常量接口反模式、静态持有可关闭
资源
等,强调
static
是架构决策而非语法糖。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章