1.什么是代码块?
? ? 代码块类似一个没有名字的方法,在类或者方法中,直接使用"{ }",括起来的一段代码,用来表示一块代码区域
? ? 代码块里的变量属于局部变量,只在自己所在的区域的{}内有效
2.代码块的分类:
-
静态代码块: 在类加载时执行(类加载完成时就直接执行,优先于所有属性和方法),只执行一次,有多个的话,按先后顺序执行
3.什么时候类加载?
? ①.main方法在那个类中执行,这个类加载
? ②.创建某个类的对象时加载
? ③.调用某个类的静态方法,属性时加载
4.代码块示例
{
System.out.println("实例代码块");
}
static {
System.out.println("静态代码块");
}
5.代码块混合使用举例
public class Test {
Person person = new Person("Test");
int age;
static{
System.out.println("test static");
}
{
System.out.println(“test”);
}
public Test() {
System.out.println("test constructor");
}
public static void main(String[] args) {
new Test();
}
}
class Person{
static{
System.out.println("person static");
}
public Person(String str) {
System.out.println("person "+str);
}
}
/* 结果为 test static
person static
person Test
test
test constructor
*/
|