代码块就类似于一个没有名字的方法
代码块分类:代码块可以分为静态代码块和实例代码块
静态代码块:静态代码块随着类的加载而执行,并且只执行一次
- 其实如果这个已经加载了的类被java垃圾回收机制回收了的话,那么当我们下一次加载这个类时,这个静态代码块也会随着这个类再加载一次,但是一般一个类只会加载一次,类很少被垃圾回收机制回收
1.静态代码块其实并不是很常用,用的话每个类中也一般只有一个静态代码块(并不是每个类都要有静态代码块)
2.静态代码跨其实就是java官方提供给java程序员的一个时机(类加载时机)
类什么时候加载?1.mian方法所在的类会最先加载
2.创建某个对象时,这个对象的模板类就会加载
3.调用静态方法(类方法),静态变量(类变量)时,这个静态方法和静态变量所属的类也要加载
- main方法所在类比main()方法要先加载
- 这里涉及到静态常量池(静态常量是在静态常量池中被访问,而不需要加载类)
静态内容根据上下文顺序执行
实例代码块:实例化代码块也为程序员提供了一个时机,这个时机叫做对象创建的时机,也就是实例代码块随着对象的创建而执行
- 实例化代码块随着对象的创建而执行,但是实例化代码块的执行顺序是在构造方法之前


![代码块[java] 代码块[java]](http://www.mshxw.com/aiimages/31/460112.png)
