实例块与静态块

实例块:

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

wKioL1nnhS-g5ZzwAAwZC0fTZj8873.png

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


静态块:

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

wKioL1nnhTbhB5itAAsoQKF4A5M138.png


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




类什么时候会被加载:

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

wKiom1nnh_KCsoGUAAvcVLpuJSQ158.png


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

wKioL1nnhUXy-nfOAA5vlbUVMQg178.png

wKiom1nniACDKEIjAArgxUsL0Oo814.png

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





本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1974039,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值