JAVA final关键字的理解

java中final关键字在平时开发中用到的不多也不算少,大多均用在修饰类的变量上,很少用final去对一个类进行修饰,因为那意味着,该类将不能被继承。从设计角度出发我们更偏向于对类进行继承重用,以体现它的好处等。但final的作用远不止于此。

final代表的含义

final在java中代表着"最终"、"不可修改"之意,即一旦初始化(强调初始化时必须对final修饰的变量进行初始化值)完成就不可对其进行修改。

final用法1:修饰类

如果一个类被final进行修饰,那么该类将无法被继承。Java中的String类就是一个final修饰的类。此类的成员变量可以被final修饰也可以不使用final修饰。但该类的所有方法皆隐式被final修饰,被final修饰的方法,在不能被继承的基础上,自然不能被重写。实际开发中,一旦对类进行final修饰,意味着这个类将作为终类使用,不会被继承。

final修饰的类不可被继承

final用法2:修饰方法

final修饰方法用于表明该方法不可以被子类继承进行重写修改。(早期java中,final修饰的方法会被作为内嵌调用以提升性能,但方法如果过于庞大将失去意义,在后期java中被砍掉此优化作用)
注意:这里修饰的方法指的是可以被子类进行继承的方法。若方法同时被private进行修饰,表明方法是该类私有的方法,不存在被继承的作用范围内,那final作用将失去。

final修饰方法

可以看出,final和private同时修饰方法,final只是表明该方法不能被子类重写(前提是在该方法能够被重写的基础上),private修饰方法表明该方法是私有的不可被继承,那么子类如果存在和父类方法名和参数、返回值一致的方法,属于子类自己所有而不是重写父类,所以即便该方法同时也被final修饰了(没有能够被重写的基础),子类亦可正常声明该方法。

final用法3:修饰变量

开发过程中用法最多的地方就属对于变量的修饰了,final修饰变量表示该变量是一次赋值,不可以被二次修改,当然前提是必须对final修饰变量进行初始化,初始化的方式可以是直接声明,也可以是在构造函数中进行初始化。这里需要加以区别的是”变量类型“。
基本数据类型:对于final修饰的基本数据类型,对其值不可被修改。
引用类型:变量所指的值即引用的内存物理地址,改地址无法进行改变,但不影响对引用的对象进行操作。

final修饰变量

这里看出final修饰的变量,如果使用构造函数进行初始化的话,需要所有构造函数进行初始化,但不影响每个构造函数对其初始化的值不尽相同。

final修饰引用类型

final修饰引用类型,不可对其进行指向新的引用,但可对其引用的对象进行值修改。

如果final修饰函数参数的话,同样进行理解,表明函数对其只读性。

注意:当final变量是基本数据类型以及String类型时,如果在编译期间能知道它的确切值,则编译器会把它当做编译期常量使用。也就是说在用到该final变量的地方,相当于直接访问的这个常量(这里注意是常量对比非对象,有兴趣的可以了解下String相关知识),不需要在运行时确定。如果编译期无法确定该变量的确切值那就没办法进行常量替换了。看如下:

编译期final被当作常量

以上就是对final的理解和认识,如有不妥请留言斧正。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容