社区
Java SE
帖子详情
请问static final资源是什么时候会被标识为可回收的
Sodino
2009-12-04 03:23:04
我有一个Image属性标识为static final。由于是final,所以初始化后就不可能再被赋值为null了。那是不是说这个Image就会一直存在于内存直到这个程序被我关闭掉才会被回收呢??
谢谢...
...全文
411
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
static
表示"全局"或"静态",用来修饰成员变量和成员方法,以及代码块.被
static
修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享.只要这个类被加载,JAVA虚拟机就能根据类名在运行时数据区的演绎法我内找到它们.因此,
static
对象可以在它的任...
Java
标识
符和关键字(
static
,
final
,abstract,interface)
本文的主要内容如下 1.
标识
符合关键字 2.Java中的关键字 3.
static
关键 字 4.
static
方法 5.静态代码块 6.
static
修饰符综述 7.
final
关键字 8.
final
修饰符综述 9.抽象类abstract class 10.abstract综述 11.抽象类和接口的区别(j精讲) 1.
标识
符合关键字 ...
面向对象:访问控制,
final
,
static
访问控制: 访问控制是给出一套方法,将系统中的所有功能
标识
出来,组织起来,托管起来,将所有的数据组织起来
标识
出来托管起来, 然后提供一个简单的唯一的接口,这个接口的一端是应用系统一端是权限引擎。 作用: 1) 防止非法的主体进入受保护的网络
资源
。 2)允许合法用户访问受保护的网络
资源
。 3)防止合法的用户对受保护的网络
资源
进行非授权的访问。 自主访问控制: 自主访问控制,是指由用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限。自
初学呐喊!——Java中
static
关键字和
final
关键字的用法
Java oop
static
与
final
使用
final
的用法
final
是Java的关键字,表示最终 1.
final
能修饰什么
final
不能修饰构造方法 类 属性 局部变量 一般方法 2.
final
修饰后的影响 类 这个类不能被继承,也就是这个类不能有子类 public
final
class Person { } 属性和变量 值不能更改,就是常量 public
final
class Person {
final
int STUDENT_AGE = 20;//
深入理解 Java
static
关键字
static
将成员从"对象实例级别"提升到"类级别"。维度非静态(实例成员)静态(类成员)归属属于每个对象属于类本身内存份数N 个对象 → N 份拷贝全局仅 1 份生命周期随对象创建而诞生,GC 回收而消亡类加载时初始化,类卸载时才消亡(通常伴随进程结束)访问方式必须先new对象,通过对象.成员访问可直接通过类名.成员访问的需求推荐方案注意事项全局不变的配置/常量全大写命名,注意常量折叠陷阱所有实例共享的可变状态
static
+ 线程安全措施用volatile/原子类/锁保护。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章