JAVA中静态代码块执行顺序问题

img

为什么结果不输出DN呢?Test1类不被加载吗为什么呀

我想的是先加载类变量再加载静态方法,输出结果为CSDN,可是结果是CS?

静态常量属性不需要类的加载就可以访问,可以通过Debug去摸一把,所以静态代码块没有被执行

我们来看图:

img


很明显,main方法中只调用了常量a。没有使用其他的参数。并且而那个static修饰根本不是啥方法。一个方法,连括号都没,返回类型也没有,你管那叫方法?这样一来自然不会输出DN。
如果想输出DN,你可以这样写

img


这样控制台就会

img


记得采纳qwq

JDK 1.8,测试运行了几次,刚开始静态代码块内容确实没有打印,后面再执行已无法复现,可以正常打印静态代码块中的内容,推测和 IDE 可能有关系

可以反编译看下,实际上相当于直接打印字符串CS

Static是一个静态代码快,一个方法有修饰符和返回值和类型,大括号,这才是一个方法。如果是一个方法体,无论构造还是静态还是其他,里面有System才能输出里面的东西。懂?