static区块里的代码只会执行一次吗?

Azting 2007-11-09 03:26:04
static
{
...
}

这种static初始化区块在多线程情况下可能会执行多次吗?
...全文
549 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovewhzlq 2007-11-14
  • 打赏
  • 举报
回复
只执行一次,不用想太多
cracker234 2007-11-14
  • 打赏
  • 举报
回复
只执行一次
lilifb 2007-11-14
  • 打赏
  • 举报
回复
static 语句块里,只有在类被加载的时候运行一回。

试试更好
cww2010 2007-11-10
  • 打赏
  • 举报
回复
static 语句块里,只有在类被加载的时候运行一回。
godwater8 2007-11-10
  • 打赏
  • 举报
回复
看上去很酷哦 我测试在继承的时候改变静态变量 还是有些缺陷的

class A {
static int a=0;
static int geta() {
return a;
}

class B extends A {
static { a = 1; }
}

然后我调用B.geta()的时候 返回0
lilifb 2007-11-09
  • 打赏
  • 举报
回复
只执行一次
rorey_008 2007-11-09
  • 打赏
  • 举报
回复
static语句块在类的.class文件被加载的时候被执行,
因为.class只加载一次,所以static语句只执行一次
K_pax 2007-11-09
  • 打赏
  • 举报
回复
我觉得应该只执行一次
class Test{
static{
System.out.println("static静态块");
}
public static void main(String[] args){
System.out.println("main主线程");
}
}

运行结果为:
static静态块
main主线程
。。。。。。。。。。。。。。。。。。。。。
你可以看到static比main方法主线程还先运行!
beck_716 2007-11-09
  • 打赏
  • 举报
回复
静态块 只执行一次
yangxiao_jiang 2007-11-09
  • 打赏
  • 举报
回复
只执行一次。

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧