static{}和{}===静态模块和普通模块的理解

2020-05-12

遇到问题:

  问题出现在:DaoFactory.java

 

理解:

  区别:

  静态代码块,在java虚拟机加载类的时候就会加载执行,而且只执行一次;

  非静态代码块,在创建的时候(即new一个对象的时候)执行,每次创建对象都会执行一次

 

静态代码块与非静态代码块的异同点:

 

相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,

 

    一般在代码块中对一些static变量进行赋值。.    

 

    另外static块中只能使用static修饰的属性。

 

    程序中的static{}块只是为了加载properties文件信息,这个加载只会被加载一次。

 

不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。

 

    静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new

 

    一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。

 

 

我看的参考是:https://www.cnblogs.com/lukelook/p/11183155.html

 

posted @ 2020-05-12 21:32  赚钱买个打印机  阅读(437)  评论(0编辑  收藏  举报