代码块
代码块即为 程序中被** { } **括起来的代码
构造代码块
在类中直接定义没有任何修饰符、前缀、后缀的代码块即为构造代码块。
它随着对象的创建而执行,每创建一个对象时就会执行一次,且优先于构造函数,主要勇于对成员变量的初始化
public class Student {
private String name;
private int age ;
//代码块 使用大括号括起来的一段代码
{
System.out.println("代码块执行......");
}
public Student() {
System.out.println("无参构造执行....");
}
public Student(String name, int age) {
System.out.println("带参构造执行......");
this.name = name;
this.age = 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;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student stduent = (Student) o;
return age == stduent.age && Objects.equals(name, stduent.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "Stduent{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
静态代码块
用static修饰的用{}括起来的代码块,它的主要目的就是对静态属性进行初始化。
静态代码块,它是随着类的加载而被执行,只要类被加载了就会执行,而且只会加载一次
static{
System.out.println("静态代码块....");
}
执行顺序应该为:静态代码块 > 构造代码块 > 构造函数。