final小记

大家都知道final是java中的修饰符之一。
用来修饰类,方法或变量。
本文不讨论以上用法,至少讨论啥呢,请看以下代码:

public class Main{
static void normalAdd(){
byte b1=1,b2=1,b3;
// b3=b1+b2;//这样写会导致编译无法通过,因为b1+b2会自动升格成int型,int必须被强转才能赋值给byte
b3=(byte) (b1+b2);//这样写是正确的
}
static void finalAdd(){
final byte b1=1,b2=1,b3;
b3=b1+b2;//看,这里不出错了。因为b1和b2都为final型,不会提升数据类型。
}
static void finalAdd2(){
final byte b1=127,b2=1,b3;
// b3=b1+b2;//这样写依然会导致编译无法通过。虽然b1和b2都是final型,但是两数相加之后为128,超出了byte的范围。
b3=(byte) (b1+b2);//所以此处依然要强转。
}
}

[b]结论:被fianl修饰的变量不会自动改变类型(越界情况特殊考虑)[/b]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值