final关键字

Java可以分为:值类型、引用类型。

值类型(可以理解为常量):

比如int,float 等就是值类型, 如果它们定义的变量前加了final关键字, 例如 final int i=100。这个i的值永远都是100, 就说明它们的值不可以改变。

引用类型(可以理解为变量):

比如 Integer,object,(android里面的ImageView 。。。)等就是引用类型, 如果他们前面加了final 表示它们的引用地址不可以改变,但是内容可以改变。但是对于变量来说又不一样,只是标识这个引用不可被改变,例如 final File f=new File("c:\test.txt");那么这个f一定是不能被改变的,如果f本身有方法修改其中的成员变量,例如是否可读,是允许修改的。形象的比喻:一个女子定义了一个final的老公,这个老公的职业和收入都是允许改变的,只是这个女人不会换老公而已。注:跟iOS中的const关键字有点像

需要记住的是:

1、final 修饰的类不能被继承;

2、final修饰的方法不能被重写;

3、final修饰的变量初始化以后不能被更改。

原文地址:https://www.cnblogs.com/bigshow1949/p/5527657.html