目录
  1. 1. 代码块
    1. 1.1. 局部代码块
    2. 1.2. 构造代码块
    3. 1.3. 静态代码块
  2. 2. 执行顺序
    1. 2.1. 思考
java代码块

代码块

局部代码块

构造代码块

静态代码块

局部代码块

在方法中出现,限定变量声明周期,及早释放,提高内存利用率

class codedemo{
public static void main(String[] args){
// 局部代码块
{
int x = 10;
System.out.println(x);
}
// 找不到情况
System.out.println(x);
}
}

构造代码块

在类中方法外出现;多个构造方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行

class Code{

// 构造代码块
{
int x = 100;
System.out.println(x);
}
public Code(){}
}
}

class CodeDemo{
public static void main(String[] args){
Code c = new Code(); // 100
}
}

静态代码块

在类中方法外出现;加了static修饰,用于给类进行初始化,在加载的时候就执行,并且只执行一次

class Code{
// 静态代码块
static {
int a = 1000;
System.out.println(a);
}
public Code(){}
}
}

class CodeDemo{
public static void main(String[] args){
Code c = new Code(); // 1000
}
}

执行顺序

静态代码块>>构造代码块>>构造方法

  • 静态代码块只执行一次

  • 构造代码块每次调用都执行

思考

判断下列输出顺序:

class Student{
static {
System.out.println("Student 静态代码块");
}

{
System.out.println("Student 构造代码块");
}

public Student(){
System.out.println("Student 构造方法");
}
}

class StudentDemo {
static {
System.out.println("main static code");
}
public static void main(String[] args){
System.out.println("main 方法");
Student s = new Student();
}
}

正确输出顺序:

  1. main static code
  2. main 方法
  3. Student 静态代码块
  4. Student 构造代码块
  5. Student 构造方法
文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-08/11/%E5%AD%A6%E4%B9%A0/%E5%90%8E%E7%AB%AF%E5%AD%A6%E4%B9%A0/JAVA/java%E4%BB%A3%E7%A0%81%E5%9D%97/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论