求大神指导, //如果不加if,编译器会提示“initializer does not complete normally” 编译器javathread 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 个人观点:因为你在DeadLoopClass类的静态初始块了加了个while(true){}死循环,你不加if判断条件,那个这个死循环肯定会执行,编译器应该不会让你通过编译,其实下面这样也可以boolean bFlag=true;while(bFlag){} 这涉及到java对static代码块中代码的检测机制,简单说,就是static中不能直接使用while循环和抛异常,这会导致类初始化失败,那加if为什么就可以了?很简单,java只检测最外面那层代码,就是说if里面的while不检测了。下面的代码报同样的错final class DeadLoopClass { static { throw new RuntimeException(); } } while循环为什么就会导致初始化失败呢,按一楼那样写就可以啊,还请大神明细 while(true) 会死循环,static不能执行完,类不能完成初始化,一楼的写法确实可以,我也不懂,java会在static中检测是否有死循环和异常被抛出 java调用C# webservice接口 请大虾指点!!!!!!!! java流和文件 求助 我的Jbulider2005在server中怎么没有tomcat 请问哪有b/s资料,关于三层架构资料,有什么好的书推荐? HttpURLConnection发送Post请求能不能传图片?该怎么写?谢 Jni中的汉字问题!!!急!!!!!!!!!!!!!!!!!!!!! JPanel的问题,高手快帮忙!!!(100分) 回车 java中怎么传输传输以bcd码为基础的网络桢?用什么格式 关于TreeSet的问题 新手问题!关于swing.Timer!
因为你在DeadLoopClass类的静态初始块了加了个while(true){}死循环,你不加if判断条件,那个这个死循环肯定会执行,编译器应该不会让你通过编译,
其实下面这样也可以
boolean bFlag=true;
while(bFlag)
{}
final class DeadLoopClass {
static {
throw new RuntimeException();
}
}
while(true) 会死循环,static不能执行完,类不能完成初始化,一楼的写法确实可以,我也不懂,java会在static中检测是否有死循环和异常被抛出