201-静态代码块与静态方法有什么区别?

这两个都会再class文件加载到内存中时,一起加载到方法区中。

但是静态代码块会执行;静态方法不会执行,只有我们使用类调用静态方法,她才会执行。

注意:静态代码块只执行一次。

   this关键字不能使用在静态代码块与静态方法中,这就决定了我们不能在静态方法中调用当前类的属性与方法。

     静态代码的执行权要高于静态方法。例如我是使用User.show()访问静态方法时,先输出的是“我是学生"

字节码文件什么加载到方法区呢?
  当使用到它的时候,也就是说需要创建对象,或者是调用静态方法。特点是只加载一次,这就决定了我们的静态代码块只执行一次。

class User{
    public static void show(){
        System.out.println("我是静态方法");
    }
    
    static {
        System.out.println("我是学生");
    }
}
原文地址:https://www.cnblogs.com/pogusanqian/p/12974975.html