class Demo1_Code {
public static void main(String[] args) {
//System.out.println("Hello World!");
{
int x =10; //局部代码块:限定了变量的生命周期,及早释放,提高内存利用率
System.out.println(x);
System.out.println("局部代码块");
}
/*
{
int x =10;
}
System.out.println(x);
*/
Demo1_Code c = new Demo1_Code(); //创建本类对象,构造代码块才执行
Student s1 = new Student();
System.out.println();
Student s2 = new Student("White",25);
System.out.println();
}
{
int x =10; //此处为构造代码块而不是局部代码块,不创建本类对象就不会被执行放
System.out.println(x);
System.out.println("我是构造代码块,不是局部代码块");
}
static{
System.out.println("我是在主方法中的静态代码块"); //静态代码块.优先于主方法执行
}
}
class Student{
private String name;
private int age;
public Student() { //空参构造
System.out.println("空参构造");
}
public Student(String name,int age) {
this.name = name;
this.age = age;
System.out.println("有参构造");
}
{
study();
System.out.println("构造代码块"); //构造代码块每创建一次对象就会执行一次,优先于构造函数执行
}
/*
public Student() {
study();
System.out.println("空参构造");
}
public Student(String name,int age) {
study();
this.name = name;
this.age = age;
System.out.println("有参构造");
}
{
System.out.println("构造代码块");
}
*/
public void study() {
System.out.println("学习");
}
static{
System.out.println("静态代码块"); //静态代码块.随着类的加载而加载,且只执行一次/作用:用来给类进行初始化/案例:驱动加载
}
}
|
|