代码块
代码块分类
1.局部代码块: 限制变量作用域(生命周期)
书写位置: 在方法中
2.构造代码块:(开发中 很少使用)
书写位置: 在类中 方法外
调用时机:
如果你有构造代码块 系统帮你调用
帮你在创建对象之前调用 每次创建对象都会调用
3.静态代码块(一定是被static修饰的)
静态代码块 依赖类 随着类加载而加载
注意: 只加载一次(只调用一次 不管你创建多少对象)
应用场景:
U盘 装载驱动程序
加载驱动(数据库驱动 JDBC)
4.同步代码块(多线程)
举例:
public static void main(String[] args) {
{
int a = 10;
System.out.println("我是一个局部代码块");
}
Person p1 = new Person();
p1.setName("ss");
p1.setAge(23);
p1.sayHi();
Person p2 = new Person();
p2.setName("123");
p2.setAge(23);
p2.sayHi();
}
static{
System.out.println("我是静态代码块2");
}
}
class Person{
private String name;
private int age;
static{
System.out.println("我是静态代码块");
}
{
System.out.println("我是构造代码块");
}
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;
}
public Person() {System.out.println("我是无参数的构造方法");}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
System.out.println("我是有参的构造方法");
}
public void sayHi() {
System.out.println(name + age);
}
}