社区
Java SE
帖子详情
static修饰的静态对象是什么时候生成的?
chinadrencher
2009-08-24 02:07:29
比如A类里有个static对象a1
B类里有个static对象b2
他们是在应用或jvm一启动的时候,对象就生成了?
还是说在使用到这些静态对象(a1,b1)的时候才生成?
还是说第一次使用到A,B类的时候他们才生成?
如果是第一种情况的话,a1和a2的生成时间几乎是挨着的
如果是后面两种,这a1和a2的生成时间可能相差很大.
求答案.
...全文
335
11
打赏
收藏
static修饰的静态对象是什么时候生成的?
比如A类里有个static对象a1 B类里有个static对象b2 他们是在应用或jvm一启动的时候,对象就生成了? 还是说在使用到这些静态对象(a1,b1)的时候才生成? 还是说第一次使用到A,B类的时候他们才生成? 如果是第一种情况的话,a1和a2的生成时间几乎是挨着的 如果是后面两种,这a1和a2的生成时间可能相差很大. 求答案.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oklinsong
2009-08-24
打赏
举报
回复
加载类的时候。
why_java
2009-08-24
打赏
举报
回复
加载的时候
zhuiyunyiye
2009-08-24
打赏
举报
回复
static 对象 在类加载的时候 生成
程序员猪佩琪
2009-08-24
打赏
举报
回复
当类的二进制码被jvm装载的时候,就在内存中生成了!
lovecj6185
2009-08-24
打赏
举报
回复
还是说在使用到这些静态对象(a1,b1)的时候才生成?
还是说第一次使用到A,B类的时候他们才生成?
这两种方法可以说是一种
因为静态对象的使用是 类名.变量名(方法名)
所以,类被加载进来了以后,静态变量就产生了
feishare
2009-08-24
打赏
举报
回复
加载类的时候,就是说把class文件加载到内存的时候
zhuzhusany
2009-08-24
打赏
举报
回复
JVM加载类的时候,类的类变量(静态变量)生成
Kitson
2009-08-24
打赏
举报
回复
public class ab
{
private static c cl= new c();
public static void main( String[] args )
{
System.out.println( "main");
}
}
class c
{
public c()
{
System.out.println( "Hello" );
}
}
lcj_up
2009-08-24
打赏
举报
回复
[Quote=引用 2 楼 yidinghe 的回复:]
在加载类的时候。
[/Quote]
顶
捏造的信仰
2009-08-24
打赏
举报
回复
在加载类的时候。
Kitson
2009-08-24
打赏
举报
回复
在应用启动时,生成
跟汤老师学Java(第8季):面向
对象
本课程从零开始,以通俗易懂的方式讲解Java入门,手把手教...类的使用 3.this关键字 4.
static
关键字 5.方法重载 6.构造方法 7.包package 8.访问
修饰
符 9.
对象
的初始化顺序 10.面向
对象
三大特征 11.封装 12.继承 13.多态
什么时候使用
static
?为什么要使用
静态
方法?
为什么要使用
静态
方法
静态
方法的好处就是不用
生成
类的实例就可以直接调用。
static
方法
修饰
的成员不再属于某个
对象
,而是属于它所在的类。只需要通过其类名就可以访问,不需要再消耗资源反复创建
对象
。 在类第一次加载的时候,
static
就已经在内存中了,直到程序结束后,该内存才会释放。 如果不是
static
修饰
的成员函数,在使用完之后就会立即被JVM回收。 什么时候使用
static
? ...
Java.
Static
修饰
类_
static
表示
静态
,它可以
修饰
属性,方法和代码块。
(1)
static
表示
静态
,它可以
修饰
属性,方法和代码块。1.
static
修饰
属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类
对象
所共有。这个属性就是全类公有。(共有的类变量与
对象
无关,只和类有关)。2.
static
修饰
方法(
静态
方法),会使这个方法成为整个类所公有的方法,可以用类名.方法名访问。3.
static
修饰
初始代码块,这时这个初始代码块就...
为什么spring aop没办法切入、拦截、代理
static
修饰
的
静态
方法?
因为spring的aop实现原理是通过JDK或者cglib为目标接口或者目标类
生成
一个代理
对象
,在这个
生成
的代理
对象
中,对要切入的方法进行重写,以此来实现各种想要的切面业务操作。那为什么aop无法切入
static
修饰
的
静态
方法/无法代理
static
方法呢?因为
static
修饰
的方法是
静态
方法,而
静态
方法是可继承但不可被重写的。这样一来,问题就解开了,因为
static
关键词的特殊限制,所以导致了aop无法切入/代理
static
修饰
的方法。
为什么要使用
static
修饰
符
修饰
方法,
静态
方法有什么优缺点。
记录一下,待梳理补充。
静态
方法的好处就是不用
生成
类的实例就可以直接调用。
static
方法
修饰
的成员不再属于某个
对象
,而是属于它所在的类。只需要通过其类名就可以访问,不需要再消耗资源反复创建
对象
。 在类第一次加载的时候,
static
就已经在内存中了,直到程序结束后,该内存才会释放。 如果不是
static
修饰
的成员函数,在使用完之后就会立即被JVM回收。 什么时候使用
static
? 如...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章