final修饰符

final关键字详解

# final可修饰变量、方法、类

# 必须显示指定初始值,不可执行默认初始化,final实例变量经过编译器处理,都会被抽取到构造器中赋初始值,final类变量初始化时会被抽取到静态初始化块中赋初始值

# 局部变量需显示初始化赋值

# 对于一个final变量,不管是类变量、实例变量、局部变量,只要定义该变量时使用了final修饰符,并在定义时指定了初始值,而且该初始值可以在编译时就被确定下来(算术表达式或字符串连接运算(可以包含隐式类型(将数值转换为字符串)),那这个final变量本质上已经不再是变量,而是相当于一个直接量;

# 只有在定义final实例或类变量时指定初始值才会有“宏变量”的“宏替换”效果

# 内部类访问的局部变量必须使用final修饰,因为内部类可能扩大局部变量的作用域

public class FinalInitTest
{
//定义3个final实例变量
final String str1;
final String str2;
final String str3 = "Java";
//str1、str2分别放在非静态初始化块、构造器中初始化
{
str1 = "Java";
}
public FinalInitTest()
{
str2 = "Java";
}
//判断str1、str2、str3是否执行"宏替换"
public void display()
{
System.out.println(str1 + str1 == "JavaJava");
System.out.println(str2 + str2 == "JavaJava");
System.out.println(str3 + str3 == "JavaJava");
}
public static void main(String[] args)
{
FinalInitTest fit = new FinalInitTest();
fit.display();
}
}

Console:
false
false
true

 



转载于:https://www.cnblogs.com/antoniohu/archive/2012/04/06/2434829.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值