前言
Java中final修饰的变量不可修改,本文分别介绍final修饰的成员变量和局部变量的赋值时机
一、成员变量
final修饰的成员变量必须在定义时赋值,否则会编译错误,而普通成员变量在定义时不赋值则具有默认值
// final int n; // 编译报错
final int i = 0; // 必须定义时赋值
int j; // 具有默认值0
二、局部变量
局部变量可以在定义时赋值,也可以先定义,之后再赋值,但一旦被赋值就不可被修改(只能赋值一次)
final int a; // 定义时不赋值
final int b = 0; // 定义时赋值
a = 1; // 初次赋值
a = 2; // 再次赋值编译错误