八.代码块
代码块概念以及分类
使用 { } 定义的一段代码称为代码块。根据代码块定义的位置以及关键字,又可分为以下四种:
普通代码块 | 一般定义在方法内部的代码块,执行不需要任何条件 |
构造块/非静态代码块/实例代码块 | 定义在类中,没有修饰符 |
静态代码块 | 用static定义的构造代码块 |
同步代码块 | 用synchronized关键字修饰的代码块 |
构造代码块:一般用来初始化非静态的数据成员。对于成员变量和构造代码块,谁在后面,最后值就是睡,前者将会被覆盖。可以简单认为:编译器编译好之后会把非静态代码块(构造代码块)的东西放到构造方法的最前面。对象创建时执行。
静态代码块:只要类被加载,就会被执行,不管调用几次,只执行第一次。
public class 静态代码块 {
private String name;
private int age;
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public int getAge() {return age;}
public void setAge(int age) {this.age = age;}
static { System.out.println("静态代码块!用来初始化或提前准备数据"); }
public static void main(String[] args) {
静态代码块 test = new 静态代码块();
}
}
同步代码块后面讲... ...
九.对象的打印
通过输出person对象,可以得到。Person为全路径,@分割符,后面是真实地址的16进制哈希值。