JAVA中final详解

final

final关键字在java中使用非常广泛,可以申明成员变量、方法、类、本地变量(包括形式参数)。

final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。

final标记的成员变量必须在声明的同时显式赋值,然后才能使用。

final标记的类不能被继承。提高安全性,提高程序的可读性,final类中的方法默认也会是final类型的,java中的String类和Integer类都是final类型的。

final标记的方法不能被子类重写。增加安全性。

实际应用最多是用在定义常量,与static搭配进行使用。

final方法的好处:

提高了性能,JVM在常量池中会缓存final变量
final变量在多线程中并发安全,无需额外的同步开销
final方法是静态编译的,提高了调用速度
final类创建的对象是只可读的,在多线程可以安全共享

详见下列代码:

package cn.com.Classwork190122;
/*
final 标记的类,表示该类不可被继承
 */
public class FinalTest {
    //一般常量的名称,所有字母都使用大写
    /*
    声明一个常量时,必须直接赋值。
    原因  常量即永远都不会改变的量,不赋值的话就会永远是默认值 如double类型的就永远是0.0
     */
    final double PI= 3.14;

    public static void main(String[] args) {
        /*
        JAVA中只有声明变量的方式,没有声明常量的方法
        变量的两种声明方式:
            1.类型  变量名 = 变量值或对象 int i = 10   String s = "abc"
            2.jdk11    var 变量名 = 变量值或对象  jvm能根据=右侧的数据值推算出左侧的类型
            想要使用常量必须使用关键字
         */
        //局部变量
        final int FINALTEST = 20;
        //使用final修饰的变量就是常量,其值无法修改
        System.out.println(new FinalTest().add(10,20));
    }
    /*
    形式参数也是局部变量的一种
    final修饰的方法不允许子类进行重写
     */
    public final int add(int x,final int y){
        //y = 30;
        //y = y;//不能有赋值的操作,虽然值没有发生变化
        return x+y;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值