美文网首页知识点
Java-----代码块

Java-----代码块

作者: 会写代码的小猿猴 | 来源:发表于2021-12-21 16:25 被阅读0次

什么是代码块

在Java中, 使用{ }括起来的代码被称为代码块,可分为局部代码块、构造代码块、 静态代码块。

局部代码块

位置:方法中定义
作用:限定变量的生命周期,及早释放,提高内存利用率
局部代码块在方法内部进行定义,在该代码块内部定义的变量作用范围也仅限于代码块内部,在代码块外部是无法访问代码块内部定义的变量的。
demo:

public class Test {
    public static void main(String[] args) {
        {
            int a=10;
            System.out.println(a);
        }
        System.out.println(a);
    }
}

上面这段代码是无法执行的,第二个输出语句会报错,因为它在代码块外部无法访问代码块内部的变量,自然无法输出a的值。

构造代码块

位置:类中方法外定义
特点:每次构造方法执行的时,都会执行该代码块中的代码,并且在构造方法执行前执行
作用:将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性
demo:

public class Test {
    public static void main(String[] args) {
        Student s1=new Student();
        Student s2=new Student(2);
    }

}

class Student{
    {
        System.out.println("这是构造代码块");
    }
    public Student(){
        System.out.println("这是空参构造方法");
    }
    public Student(int a){
        System.out.println("这是有参参构造方法");
    }
}

执行结果:


image.png

结合代码和执行结果可以看到,每次创建对象时都会执行构造代码块,并且它在构造方法之前执行。

静态代码块

位置:类中方法外定义
特点:需要通过static关键字修饰,随着类的加载而加载,只执行1次
作用:在类加载的时候做一些数据初始化的操作
demo:

public class Test {
    public static void main(String[] args) {
        Student s1=new Student();
        Student s2=new Student(2);
    }

}

class Student{
    static {
        System.out.println("这是静态代码块");
    }
    public Student(){
        System.out.println("这是空参构造方法");
    }
    public Student(int a){
        System.out.println("这是有参参构造方法");
    }
}

执行结果:


image.png

静态代码块需要用static修饰,我们知道static修饰的变量会随着类的加载而加载,由于类文件只加载一次,所以static修饰的变量也只会加载一次,这个规则在static修饰代码块时依然适用,所以静态代码块会随着类文件的加载而加载,并且只加载一次。

相关文章

  • Java-----代码块

    什么是代码块 在Java中, 使用{ }括起来的代码被称为代码块,可分为局部代码块、构造代码块、 静态代码块。 局...

  • 普通代码块、构造代码块、静态代码块、同步代码块

    普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定-...

  • Java中静态代码块,构造代码块,构造函数代码块

    Java中静态代码块,构造代码块,构造函数代码块,普通代码块 静态代码块 : static代码块指的是static...

  • 09.代码块的概述

    代码块 局部代码块 局部代码块是定义在方法或语句中 构造代码块 构造代码块是定义在类中成员位置的代码块 静态代码块...

  • Java代码块详解

    Java中代码块指的是用 {} 包围的代码集合,分为4种:普通代码块,静态代码块,同步代码块,构造代码块 普通代码...

  • Java-----接口

    接口的定义 当一个类中的所有方法都是抽象方法时,我们可以将它定义为接口,接口也是一种引用数据类型,它比抽象类还要抽...

  • Java-----多态

    概述 同一个对象在不同时刻表现出的不同形态,这就是多态。举一个例子:猫我们可以说猫是猫:猫 cat=new 猫()...

  • Java-----继承

    1、什么是继承? 继承就是让类与类之间产生关系(子父类关系),子类可以直接使用父类中的非私有成员。注意:子类不能使...

  • java中的代码块

    java中的代码块: 普通代码块,静态代码块,构造代码块 1. 普通代码块:在方法或者语句中, …… ...

  • Java基础之普通代码块、构造代码块、静态代码块、同步代码块

    1、概念 普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的...

网友评论

    本文标题:Java-----代码块

    本文链接:https://www.haomeiwen.com/subject/eguxqrtx.html