请大神们帮我分析分析, 下面是我看视频写的一段代码,可是这段程序第一次的执行结果和我预料的一样,是b,c,d;
可是当执行很多次的时候,就会出现输出c,b,d;自己搞不清楚是什么原因,请明白其中道理的大神告诉小弟,不甚感激。:handshake:handshake
源代码如下:- class StaticCode{
- StaticCode(){
- System.out.println("a");
- }
- //静态代码块是用于给类初始化的
- static{
- System.out.println("b");
- }
- //构造代码块是用于给对象初始化的
- {
- System.err.println("c");
- }
-
- public static void show(){
- System.out.println("run over");
- }
-
- StaticCode(int x){
- System.out.println("d");
- }
- }
- public class StaticCodeTest {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- new StaticCode(5);
- }
- }
复制代码
|
|