社区
Web 开发
帖子详情
关于java 静态变量生命周期问题
dokia123
2011-08-09 11:08:38
问下,当一个类被加载后,它的静态变量生命周期是什么,是整个应用程序执行结束(比如java web程序,从类加载到服务器关闭还是该线程执行完毕)还是别的什么?
...全文
604
11
打赏
收藏
关于java 静态变量生命周期问题
问下,当一个类被加载后,它的静态变量生命周期是什么,是整个应用程序执行结束(比如java web程序,从类加载到服务器关闭还是该线程执行完毕)还是别的什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dokia123
2011-08-10
打赏
举报
回复
总计测试了下,跟5L说的差不多,不过还是有些疑问唉。
bijanen19861113
2011-08-09
打赏
举报
回复
嗯嗯,是跟类的生命周期相关..
dokia123
2011-08-09
打赏
举报
回复
这个类从最开始被加载以后就一直在内存里吗?那难道所有的类被加载了都会一直在内存还是只有静态变量的类才会一直在内存。[Quote=引用 5 楼 shine333 的回复:]
取决于类加载器。如果换了一个类加载器,这个类会被重新加载,相对应的,类中的static也会重新初始化。不过这种情况,对大部分人来讲,在平时写代码的时候,不会碰到,所以如果搞不清楚,那就直接理解成一直存在,直到服务器关闭
anyway,和线程无关
[/Quote]
shine333
2011-08-09
打赏
举报
回复
取决于类加载器。如果换了一个类加载器,这个类会被重新加载,相对应的,类中的static也会重新初始化。不过这种情况,对大部分人来讲,在平时写代码的时候,不会碰到,所以如果搞不清楚,那就直接理解成一直存在,直到服务器关闭
anyway,和线程无关
dokia123
2011-08-09
打赏
举报
回复
这...貌似你的这些刚才我在百度的时候看到了。没看清我的问题需求唉。[Quote=引用楼主 dokia123 的回复:]
问下,当一个类被加载后,它的静态变量生命周期是什么,是整个应用程序执行结束(比如java web程序,从类加载到服务器关闭还是该线程执行完毕)还是别的什么?
[/Quote]
wangjiangbo2
2011-08-09
打赏
举报
回复
我认为应该是到服务器关闭。
我做的一个静态变量类(启动weblogic时,就执行这个类),里面给很多变量赋值,他的生命周期是weblogic启动----weblogic关闭
softroad
2011-08-09
打赏
举报
回复
[Quote=引用 1 楼 lmaohuanl 的回复:]
静态变量在内存中只有一个,JAVA虚拟机加载类的时候为其分配内存,位于方法区,被类的所有实例共享,其生命周期取决于类的生命周期。。。当类被卸载。。。静态变量也被销毁
[/Quote]
学习了。
LMAOhuaNL
2011-08-09
打赏
举报
回复
静态变量在内存中只有一个,JAVA虚拟机加载类的时候为其分配内存,位于方法区,被类的所有实例共享,其生命周期取决于类的生命周期。。。当类被卸载。。。静态变量也被销毁
dokia123
2011-08-09
打赏
举报
回复
类的生命周期我也看了,说是当没有任何引用指向class对象的时候就会卸载类。但是如果我只是通过类名调用静态变量,这时候并没有实例化class对象,那这个类什么时候被卸载。[Quote=引用 8 楼 wyc_cs 的回复:]
先理解了类的生命周期之后,静态变量的生命周期自然就知道了。静态变量的生命周与类的生命周期是一样的。个人理解。类加载的时候会在方法区中生成静态变量,直到这个类被卸载掉,在整个过程中只有一个变量。
[/Quote]
wyc_cs
2011-08-09
打赏
举报
回复
先理解了类的生命周期之后,静态变量的生命周期自然就知道了。静态变量的生命周与类的生命周期是一样的。个人理解。类加载的时候会在方法区中生成静态变量,直到这个类被卸载掉,在整个过程中只有一个变量。
尹成
JAVA
快速入门
Java
语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java
具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等...
java
静态变量
生命周期
_static
静态变量
生命周期
静态变量
的类型说明符是static。
静态变量
当然是属于静态存储方式,但是属于静态存储方式的量不一定就是
静态变量
,例如外部变量虽属于静态存储方式,但不一定是
静态变量
,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。对于自动变量,它属于动态存储方式。但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。由此看来,一个变量可由static进行再说明,...
Java
静态变量
生命周期
Java
静态变量
生命周期
(类
生命周期
) Static: 加载:
java
虚拟机在加载类的过程中为
静态变量
分配内存。类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享销毁:类被卸载时,
静态变量
被销毁,并释放内存空间。static变量的
生命周期
取决于类的
生命周期
类初始化顺序:
静态变量
、静态代码块初始化构造函数自定义构造函数
java
静态变量
的
生命周期
_
java
– 静态(类)变量的
生命周期
您似乎没有区分
静态变量
和实例变量.
静态变量
是在类本身上定义的.实例变量仅存在于类实例中.例:class Test {public static int a;}变量a在类本身上定义,而不是在类的实例上定义.每个实例都将访问同一个变量.如果一个实例将a的值设置为5,则每个其他实例都将该值视为5.一旦实例消失,该变量将不会消失,因为它绝不会绑定到任何实例(它是类变量).它会一直持续到那个时间结束(或者直...
java
静态变量
生命周期
静态变量
是类相关的变量,所以他的
生命周期
是从这个累被声明,到这个类彻底被垃圾回收机制彻底回收才会被销毁。 实例变量是这个类的对象里的变量,它和
静态变量
不同,它只能由创建出的对象来调用,所以实例变量是从这个对象(其实就是实例)被创建开始,直到这个对象没有任何引用变量去引用它,最终被垃圾回收站回收,这时这个实例变量也跟着就消失了。 总而言之:
静态变量
生命周期
就是类的开始和销毁
Web 开发
81,092
社区成员
341,718
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章