国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于簡單實例的final關鍵字深入剖析

2018-06-04 10:01
關鍵詞:常量數(shù)據(jù)類型關鍵字

(長沙學院計算機工程與應用數(shù)學學院 湖南長沙 410075)

引言

final修飾的類、變量和方法具有以下特性:

1. final修飾的類不能被繼承。

2. final修飾的方法不能被子類重寫。

3. final修飾的變量(成員變量和局部變量)是常量,只能賦值一次。

一、final修飾基本數(shù)據(jù)類型與引用數(shù)據(jù)類型的區(qū)別

修飾變量是final用得最多的地方,數(shù)據(jù)類型有基本數(shù)據(jù)類型與引用數(shù)據(jù)類型,當final修飾基本數(shù)據(jù)類型時,被修飾的數(shù)據(jù)就相當于我們自己直接定義的常量,理解與應用與一致,但當修飾引用數(shù)據(jù)類型變量時,會有所不同,這是本文接下來要重點闡述的內容。首先了解一下final變量的基本語法:對于一個final變量,如果是基本數(shù)據(jù)類型的變量,則其數(shù)值一旦在初始化之后便不能更改;如果是引用類型的變量,則在對其初始化之后便不能再讓其指向另一個對象。 接下來舉個例子深入分析final關鍵字修飾引用類型數(shù)據(jù)的性能:

上述代碼運行結果為:

分析上述輸出結果可知,就final修飾基本數(shù)據(jù)而言,我們會得出第一個輸出結果應該也是false,因為final修飾變量時,就相當于常量。但輸出結果卻相反。實際第一個輸出結果為true,而第二個結果為fasle。這里面就是final變量和普通變量的區(qū)別了,當final變量是基本數(shù)據(jù)類型以及String類型時,如果在編譯期間能知道它的確切值,則編譯器會把它當做編譯期常量使用。也就是說在用到該final變量的地方,相當于直接訪問的這個常量,不需要在運行時確定。因此在上面的一段代碼中,由于變量b被final修飾,因此會被當做編譯器常量,所以在使用到b的地方會直接將變量b替換為它的值。而對于變量d的訪問卻需要在運行時通過鏈接來進行。

二、final修飾引用類型對像變量

在上面提到被final修飾的引用變量一旦初始化賦值之后就不能再指向其他的對象,那么該引用變量指向的對象的內容是否可變呢?下面通過實例驗證。

運行結果為:

由運行結果可知,final修飾的引用變量一旦初始化賦值之后就不能再指向其他的對象,那么該引用變量指向的對象的內容是可變的。

結語

總上所述,F(xiàn)inal關鍵字在修飾變量時,該變量就為常量,這是針對基本數(shù)據(jù)類型而言的,我們要區(qū)分及深入理解分析 final修飾引用類型數(shù)據(jù)時,其起的應用性能。另外,很多時候會容易把static和final關鍵字混淆,static作用于成員變量用來表示只保存一份副本,而 final的作用是用來保證變量不可變, final比static更加專一。

[1]http∶//www.cnblogs.com/beanmoon/archive/2012/04/25/2470298.html

[2] 安博教育集團,Java核心技術[M].北京:電子工業(yè)出版社,2012

[3] 高永強,Java編程藝術[M].北京:清華大學出版社,2009.

[4] 王善發(fā),吳道榮,Java編程中static和 final關鍵字的陷阱,保山學院學報,2012,31(5):19-22

猜你喜歡
常量數(shù)據(jù)類型關鍵字
科學照亮世界
——卡文迪什測定萬有引力常量
履職盡責求實效 真抓實干勇作為——十個關鍵字,盤點江蘇統(tǒng)戰(zhàn)的2021
如何理解數(shù)據(jù)結構中的抽象數(shù)據(jù)類型
成功避開“關鍵字”
一次函數(shù)的學習引導
基于SeisBase模型的地震勘探成果數(shù)據(jù)管理系統(tǒng)設計
線上眾籌產品的特征分析與研究
相似度計算及其在數(shù)據(jù)挖掘中的應用
智能垃圾箱
解決常量與變量問題的四種策略