java中final关键字用法小结

根据上下文,java中final关键字的含义存在着细微的区别,但它通常指的是“不可改变的”不想改变可能有两种理由:设计效率,由于这两个字差了很远,所以final可能被误用。
以下谈到了使用final的三种用法:数据,方法,和类


  • final修饰数据
    1,一个永不改变的编译时常量
    2,一个在运行时被初始化的值,而你不希望它被改变。
    3,在对常量进行定义的时候,必须对其进行赋值。
    4,一个static又是final的域只占据一个不能改变的存储空间。
    5,java允许空白 final,所谓空白final是指被声明为final但又未给定初值的域。
    6,final修饰参数 java允许在参数列表声明的方式将参数指明为final。这就意味着你无法更改参数引用所指向的对象。例:
public class text {
    public class FinalArguments {
        void with(final Integer i) {
             i = 1; //Illegal,i is final
        }

        void without(Integer i) {
            i = 1;// OK
        }

        void f(final int i) {
            //i++; can't change
        }

        int g(int i) {
            return i + 1;
        }//OK
    }

  • final修饰方法
    1,把方法锁定,防止任何继承类修改它的含义。
    2,效率问题,现版本jvm虚拟机已优化
    3,类中所有的private关键字都隐式指为final,可以对private方法增添final修饰词,但并不会增加任何额外的意义

  • final修饰类
    1,当某个类的整体定义为final时,表明你不打算继承该类,而且也不允许别人这么做,或出于安全的考虑,你不希望它有子类。
    例:
public class text{
    class SmartBrain{}
    final class Diansaur{
        int i= 7;
        int j= 9;
        SmartBrain smartBrain = new SmartBrain();
        void f(){};
    }
    class FutherDia extends Diansaur{} //error:Cannot extend final class
    class FutherBra extends SmartBrain{} //ok
}

个人简单总结,2017.10.21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值