java中的代码块及其作用(附有面试题)
代码块的分类
看如下代码猜猜控制台输出结果?(面试题)
输出结果如下
分析:首先,因为main方法在StudentDemo中,而类的静态代码块在类被加载之时就执行,所以先执行StudentDemo中的静态代码块,然后执行main方法,后面创建Student类的第一个对象会加载Student类,所以先执行其内的静态代码块,再然后创建对象要调用构造方法,而构造代码块在构造方法之前执行,最后执行构造方法,创建第二个Student对象时,因为静态块在内存中只存在一份拷贝,执行后不再执行,而创建对象依然要调用构造方法,所以最终输出结果如上图。