实例块与静态块

时间:2022-07-21 19:35:02

实例块:

实例块,可以写任意个,new对象时,实例块要比构造器先执行,不new对象实例块不会执行。实例块的写法就是在类的括内写一对{ },里面除了方法以外,可以写任意代码,由于不像构造器能传递参数,所以基本日常开发中不会用到实例块。例如:

实例块与静态块

因为实例块要比构造器先执行所以先输出“实例块”。


静态块:

静态块,可以写任意个,类被加载的时候就被执行,但是只会被加载一次,不会加载第二次。一个类只要写了静态块,而且有main方法静态块里面有代码的话里面的代码都会进行加载。例如:

实例块与静态块


因为静态块是在类加载的时候就被加载,所以静态块里面的代码也会进行执行。




类什么时候会被加载:

 一个类在被new对象、被访问调用方法、被访问静态成员均会促使这个类进行加载。还有就是用Class.forName();来加载类,这个方法是专门用来加载类的。例如:

实例块与静态块


 如果访问类的常量是不会促使类进行加载的,因为常量层和类的内存不在一块,所以类不会被加载。例如:

实例块与静态块

实例块与静态块

静态块没被加载只调用了常量的值


本文出自 “zero” 博客,请务必保留此出处http://zero01.blog.51cto.com/12831981/1974039