这两个都会再class文件加载到内存中时,一起加载到方法区中。
但是静态代码块会执行;静态方法不会执行,只有我们使用类调用静态方法,她才会执行。
注意:静态代码块只执行一次。
this关键字不能使用在静态代码块与静态方法中,这就决定了我们不能在静态方法中调用当前类的属性与方法。
静态代码的执行权要高于静态方法。例如我是使用User.show()访问静态方法时,先输出的是“我是学生"
字节码文件什么加载到方法区呢?
当使用到它的时候,也就是说需要创建对象,或者是调用静态方法。特点是只加载一次,这就决定了我们的静态代码块只执行一次。
class User{ public static void show(){ System.out.println("我是静态方法"); } static { System.out.println("我是学生"); } }