1、代码块:
作用:用来初始化类,对象。比如我们连接数据库的时候 需要打开连接,可以使用代码块进行数据库的连接操作。
分类:静态代码块和非静态代码块
静态代码块:
》内部可以有输出语句
》随着类的加载而执行,而且只执行一次
》静态代码块的执行要优先于非静态代码块的执行
》静态代码块内只能调用静态的属性、静态的方法、不能调用非静态的结构
非静态代码块
》内部可以有输出语句
》随着对象的创建而执行
》每创建一个对象,就执行一次非静态代码块
》如果一个类中定义了多个非静态代码块、则按照声明的先后顺序执行
》非静态代码块内可以调用静态的属性、静态的方法、或非静态的属性,非静态的方法。
public class User {
private String name;
public User() {
System.out.println("我是无参构造");
}
public User(String name) {
System.out.println("我是有参构造");
this.name = name;
}
/*静态代码块*/
static {
System.out.println("我是静态代码块");
}
/*非静态代码块*/
{
System.out.println("我的代码块");
}
public static void main(String[] args) {
User user = new User("admin");
User user2 = new User("kill");
User user3 = new User("kill");
}