两者的区别就是:静态代码块是自动执行的,而静态方法是被调用的时候才执行的。
区别很简单: 静态代码块,在虚拟机加载类的时候就会加载执行,而且只执行一次; 非静态代码块,在创建对象的时候(即new一个对象的时候)执行,每次创建对象都会执行一次
相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个, 一般在代码块中对一些static变量进行赋值。
不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。 静态代码块只在第一次类加载时执行一次,之后不再执行,而非静态代码块在每new 一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。

博客介绍了静态代码块、非静态代码块和静态方法的区别与相同点。静态代码块自动执行,虚拟机加载类时加载且只执行一次;非静态代码块创建对象时执行,每次创建都执行;静态方法被调用时执行。相同点是都在JVM加载类且构造方法前执行。
3382

被折叠的 条评论
为什么被折叠?



