static区块里的代码只会执行一次吗? static{...}这种static初始化区块在多线程情况下可能会执行多次吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我觉得应该只执行一次class Test{ static{ System.out.println("static静态块"); } public static void main(String[] args){ System.out.println("main主线程"); }}运行结果为:static静态块main主线程你可以看到static比main方法主线程还先运行! static语句块在类的.class文件被加载的时候被执行,因为.class只加载一次,所以static语句只执行一次 static 语句块里,只有在类被加载的时候运行一回。 看上去很酷哦 我测试在继承的时候改变静态变量 还是有些缺陷的class A { static int a=0; static int geta() { return a;}class B extends A { static { a = 1; }}然后我调用B.geta()的时候 返回0 static 语句块里,只有在类被加载的时候运行一回。试试更好 急急急!!求助!!见代码给分儿 简单的界面问题 请各个多多指点 飘~涅咯~switch的缺点是虾米涅 排班表设计 "又"一个关于String类对象的问题 高手兄在何处? [难]多个Java进程间消息传递,以及进程控制,详情见内! 100分!帮忙找错误! SUN和微软先哪个呢?谢谢(详细的在里面) 请问下面这段代码有什么问题? 关于java打印的问题
class Test{
static{
System.out.println("static静态块");
}
public static void main(String[] args){
System.out.println("main主线程");
}
}运行结果为:
static静态块
main主线程
你可以看到static比main方法主线程还先运行!
因为.class只加载一次,所以static语句只执行一次
static int a=0;
static int geta() {
return a;
}class B extends A {
static { a = 1; }
}然后我调用B.geta()的时候 返回0