实例块:
实例块,可以写任意个,new对象时,实例块要比构造器先执行,不new对象实例块不会执行。实例块的写法就是在类的括内写一对{ },里面除了方法以外,可以写任意代码,由于不像构造器能传递参数,所以基本日常开发中不会用到实例块。例如:
因为实例块要比构造器先执行所以先输出“实例块”。
静态块:
静态块,可以写任意个,类被加载的时候就被执行,但是只会被加载一次,不会加载第二次。一个类只要写了静态块,而且有main方法静态块里面有代码的话里面的代码都会进行加载。例如:
因为静态块是在类加载的时候就被加载,所以静态块里面的代码也会进行执行。
类什么时候会被加载:
一个类在被new对象、被访问调用方法、被访问静态成员均会促使这个类进行加载。还有就是用Class.forName();来加载类,这个方法是专门用来加载类的。例如:
如果访问类的常量是不会促使类进行加载的,因为常量层和类的内存不在一块,所以类不会被加载。例如:
静态块没被加载只调用了常量的值
本文出自 “zero” 博客,请务必保留此出处http://zero01.blog.51cto.com/12831981/1974039