【java】对被final修饰的变量进行赋值的几种方法

对被final修饰的变量进行赋值的几种方法

  1. 被final修饰的变量,有三种赋值方式。
  2. 被final static 修饰的变量,有两种赋值方式。
  3. 在继续前,了解以下内容:
    • 静态代码块、构造代码块、构造方法的执行顺序
    • 被final修饰的变量 の 内存分配状况

这是精华:

因为当类被加载进内存的时候,这个属性并没有给其分配内存空间,而只是定义了一个变量,只有当类被实例化的时候这个属性才被分配内存空间,而实例化的时候同时执行了构造函数,所以属性被初始化了,也就符合了当它被分配内存空间的时候就需要初始化,以后不再改变的条件。

被final修饰的变量

  1. 在定义时直接赋值。
    fianl int a = 1;
  2. 声明时不赋值,在constructor中赋值。
public class Test {
    private int a;
    public Test() {
        a = 1;
    }
}
  1. 声明时不赋值,在构造代码块中赋值,个人感觉还不如写在构造函数里,因此就不赘述了。

被final static修饰的变量

1.在定义时直接赋值.
final static int a = 1;
2. 声明时不赋值,在静态代码块中赋值:

public class Test {
    public static int a;
    static {
        a = 1;
    }
}

你可能感兴趣的:(Java)