日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

盤點歷屆 Java 語言的關鍵字,一定有你不認識的

來源: 責編: 時間:2024-06-17 17:40:48 173觀看
導讀在 Java 編程語言中,關鍵字是具有特殊含義的保留字,它們用于表示語言中的特定功能和操作。了解和正確使用這些關鍵字對于編寫高效、可靠的 Java 程序至關重要。今天通過這篇文章,我們一起來了解一下相關的關鍵字以及含義

在 Java 編程語言中,關鍵字是具有特殊含義的保留字,它們用于表示語言中的特定功能和操作。mRi28資訊網(wǎng)——每日最新資訊28at.com

了解和正確使用這些關鍵字對于編寫高效、可靠的 Java 程序至關重要。mRi28資訊網(wǎng)——每日最新資訊28at.com

今天通過這篇文章,我們一起來了解一下相關的關鍵字以及含義。mRi28資訊網(wǎng)——每日最新資訊28at.com

一、關鍵字匯總

圖片圖片mRi28資訊網(wǎng)——每日最新資訊28at.com

二、訪問控制

?表示可以訪問,x表示不能訪問mRi28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片mRi28資訊網(wǎng)——每日最新資訊28at.com

2.1、private(私有化)

private 關鍵字是訪問控制修飾符,可以應用于內(nèi)部類、方法或類的變量字段。只能在聲明 private(內(nèi)部)類、方法或字段的類中引用這些類、方法或字段。在類的外部或者對于子類而言,它們是不可見的。mRi28資訊網(wǎng)——每日最新資訊28at.com

2.2、default(缺省)

default:關鍵字是可以應用于類、方法或類的變量字段的訪問控制修飾符。當沒有指定類的訪問權(quán)限的時候,虛擬機就會默認的形式給類劃定界限!默認修飾的類無法被其他包的類繼承!mRi28資訊網(wǎng)——每日最新資訊28at.com

2.3、protected(受保護的)

protected:關鍵字是可以應用于內(nèi)部類、方法或類的變量字段的訪問控制修飾符。可以在聲明 protected 類、方法或字段的類、同一個包中的其他任何類以及任何子類(無論子類是在哪個包中聲明的)中引用這些類、方法或字段。mRi28資訊網(wǎng)——每日最新資訊28at.com

2.4、public(公共的)

public:關鍵字是可以應用于類、方法或類的變量字段的訪問控制修飾符。可以在其他任何類或包中引用 public 類、方法或字段。mRi28資訊網(wǎng)——每日最新資訊28at.com

三、類、接口、方法修飾符

圖片圖片mRi28資訊網(wǎng)——每日最新資訊28at.com

3.1、class類

class 關鍵字用來聲明新的 Java 類,該類是相關變量和/或方法的集合。類是面向?qū)ο蟮某绦蛟O計方法的基本構(gòu)造單位。要使用類,通常使用 new 操作符將類的對象實例化,然后調(diào)用類的方法來訪問類的功能。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.2、abstract 聲明抽象

abstract關鍵字可以修改類或方法。abstract類可以擴展(增加子類),但不能直接實例化。abstract方法不在聲明它的類中實現(xiàn),但必須在某個子類中重寫。采用 abstract方法的類本來就是抽象類,并且必須聲明為abstract。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.3、extends 繼承、擴展

extends 關鍵字用在 class 或 interface 聲明中,用于指示所聲明的類或接口是其名稱后跟有 extends 關鍵字的類或接口的子類。子類繼承父類的所有 public 和 protected 變量和方法(但是不包括構(gòu)造函數(shù))。子類可以重寫父類的任何非 final 方法。一個類只能擴展一個其他類,但一個接口可以繼承多個接口。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.4、implements實現(xiàn)

implements 關鍵字在 class 聲明中使用,以指示所聲明的類提供了在 implements 關鍵字后面的名稱所指定的接口中所聲明的所有方法的實現(xiàn)。類必須提供在接口中所聲明的所有方法的實現(xiàn)。一個類可以實現(xiàn)多個接口。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.5、interface 接口

interface 關鍵字用來聲明新的 Java 接口,接口是方法的集合。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.6、final 最終、不可改變

在Java中,final關鍵字可以用來修飾類、方法和變量(包括成員變量和局部變量)。final方法在編譯階段綁定,稱為靜態(tài)綁定(static binding)。下面就從這四個方面來了解一下final關鍵字的基本用法。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.6.1、修飾類

當用final修飾一個類時,表明這個類不能被繼承,不能有子類。也就是說,如果一個類你永遠不會讓他被繼承,就可以用final進行修飾。final類中的成員變量可以根據(jù)需要設為final,但是要注意final類中的所有成員方法都會被隱式地指定為final方法。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.6.2、修飾方法

下面這段話摘自《Java編程思想》:mRi28資訊網(wǎng)——每日最新資訊28at.com

使用final方法的原因有兩個。第一個原因是把方法鎖定,以防任何繼承類修改它的含義;第二個原因是效率。在早期的Java實現(xiàn)版本中,會將final方法轉(zhuǎn)為內(nèi)嵌調(diào)用。但是如果方法過于龐大,可能看不到內(nèi)嵌調(diào)用帶來的任何性能提升。在最近的Java版本中,不需要使用final方法進行這些優(yōu)化了。mRi28資訊網(wǎng)——每日最新資訊28at.com

因此,如果只有在想明確禁止 該方法在子類中被覆蓋的情況下才將方法設置為final的。mRi28資訊網(wǎng)——每日最新資訊28at.com

還有就是,類的private方法會隱式地被指定為final方法。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.6.3、修飾變量

修飾變量是final用得最多的地方。mRi28資訊網(wǎng)——每日最新資訊28at.com

對于一個final變量,如果是基本數(shù)據(jù)類型的變量,則其數(shù)值一旦在初始化之后便不能更改;如果是引用類型的變量,則在對其初始化之后便不能再讓其指向另一個對象。引用變量被final修飾之后,雖然不能再指向其他對象,但是它指向的對象的內(nèi)容是可變的。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.6.4、final參數(shù)

當函數(shù)參數(shù)為final類型時,你可以讀取使用該參數(shù),但是無法改變該參數(shù)的值或者引用指向。道理同final變量。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.7、strictfp 嚴格,精準

strictfp的意思是FP-strict,也就是說精確浮點的意思。在Java虛擬機進行浮點運算時,如果沒有指定strictfp關鍵字時,Java的編譯器以及運行環(huán)境在對浮點運算的表達式是采取一種近似于我行我素的行為來完成這些操作,以致于得到的結(jié)果往往無法令人滿意。而一旦使用了strictfp來聲明一個類、接口或者方法時,那么所聲明的范圍內(nèi)Java的編譯器以及運行環(huán)境會完全依照浮點規(guī)范IEEE-754來執(zhí)行。因此如果想讓浮點運算更加精確,而且不會因為不同的硬件平臺所執(zhí)行的結(jié)果不一致的話,那就請用關鍵字strictfp。mRi28資訊網(wǎng)——每日最新資訊28at.com

可以將一個類、接口以及方法聲明為strictfp,但是不允許對接口中的方法以及構(gòu)造函數(shù)聲明strictfp關鍵字。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.8、static 靜態(tài)

static可以用于修飾屬性,可以修飾代碼塊,也可以用于修飾方法,還可以用于修飾類。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.8.1、static修飾屬性

無論一個類生成了多少個對象,所有這些對象共同使用唯一一份靜態(tài)的成員變量;一個對象對該靜態(tài)成員變量進行了修改,其他對象的該靜態(tài)成員變量的值也會隨之發(fā)生變化。如果一個成員變量是static的,那么我們可以通過‘類名.成員變量名’的方式來使用它。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.8.2、static修飾方法

static修飾的方法叫做靜態(tài)方法。對于靜態(tài)方法來說,可以使用‘類名.方法名’的方式來訪問。靜態(tài)方法只能繼承,不能重寫(Override),因為重寫是用于表現(xiàn)多態(tài)的,重寫只能適用于實例方法,而靜態(tài)方法是可以不生成實例直接用類名來調(diào)用,這就會與重寫的定義所沖突,與多態(tài)所沖突,所以靜態(tài)方法不能重寫,只能是隱藏。mRi28資訊網(wǎng)——每日最新資訊28at.com

static方法與非static方法:不能在靜態(tài)方法中訪問非靜態(tài)成員變量;可以在靜態(tài)方法中訪問靜態(tài)的成員變量。可以在非靜態(tài)方法中訪問靜態(tài)的成員變量:因為靜態(tài)方法可以直接用類名來調(diào)用,而非靜態(tài)成員變量是在創(chuàng)建對象實例時才為變量分配內(nèi)存和初始化變量值。mRi28資訊網(wǎng)——每日最新資訊28at.com

不能在靜態(tài)方法中使用this關鍵字:因為靜態(tài)方法可以直接用類名來調(diào)用,而this實際上是創(chuàng)建實例時,實例對應的一個應用,所以不能在靜態(tài)方法上使用this。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.8.3、static修飾代碼塊

靜態(tài)代碼塊。靜態(tài)代碼塊的作用也是完成一些初始化工作。首先執(zhí)行靜態(tài)代碼塊,然后執(zhí)行構(gòu)造方法。靜態(tài)代碼塊在類被加載的時候執(zhí)行,而構(gòu)造方法是在生成對象的時候執(zhí)行;要想調(diào)用某個類來生成對象,首先需要將類加載到Java虛擬機上(JVM),然后由JVM加載這個類來生成對象。mRi28資訊網(wǎng)——每日最新資訊28at.com

類的靜態(tài)代碼塊只會執(zhí)行一次,是在類被加載的時候執(zhí)行的,因為每個類只會被加載一次,所以靜態(tài)代碼塊也只會被執(zhí)行一次;而構(gòu)造方法則不然,每次生成一個對象的時候都會調(diào)用類的構(gòu)造方法,所以new一次就會調(diào)用構(gòu)造方法一次。如果繼承體系中既有構(gòu)造方法,又有靜態(tài)代碼塊,那么首先執(zhí)行最頂層的類的靜態(tài)代碼塊,一直執(zhí)行到最底層類的靜態(tài)代碼塊,然后再去執(zhí)行最頂層類的構(gòu)造方法,一直執(zhí)行到最底層類的構(gòu)造方法。注意:靜態(tài)代碼塊只會執(zhí)行一次。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.8.4、static修飾類

這個有點特殊,首先,static是可以用來修飾類的,但是static是不允許用來修飾普通類,只能用來修飾內(nèi)部類,被static所修飾的內(nèi)部類可以用new關鍵字來直接創(chuàng)建一個實例,不需要先創(chuàng)建外部類實例。static內(nèi)部類可以被其他類實例化和引用(即使它是頂級類)。mRi28資訊網(wǎng)——每日最新資訊28at.com

其實理解起來也簡單。因為static主要是修飾類里面的成員,包括內(nèi)部類、屬性、方法這些。修飾這些變量的目的也很單純,那就是暗示這個成員在該類之中是唯一的一份拷貝,即便是不斷的實例化該類,所有的這個類的對象都會共享這些static成員。這樣就好辦了。因為是共享的、唯一的,所以,也就不需要在實例化這個類以后再通過這個類來調(diào)用這個成員了,顯然有點麻煩,所以就簡單一點,直接通過類名直接調(diào)用static成員,更加直接。然而這樣設置之后,就出現(xiàn)了一個限制,就是,static方法之中不能訪問非static屬性,因為這個時候非static屬性可能還沒有給他分配內(nèi)存,該類還沒有實例化。mRi28資訊網(wǎng)——每日最新資訊28at.com

所以,通常,static 關鍵字意味著應用它的實體在聲明該實體的類的任何特定實例外部可用。mRi28資訊網(wǎng)——每日最新資訊28at.com

可以從類的外部調(diào)用 static 方法,而不用首先實例化該類。這樣的引用始終包括類名作為方法調(diào)用的限定符。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.9、synchronized線程、同步

synchronized 關鍵字可以應用于方法或語句塊,并為一次只應由一個線程執(zhí)行的關鍵代碼段提供保護。mRi28資訊網(wǎng)——每日最新資訊28at.com

synchronized 關鍵字可防止代碼的關鍵代碼段一次被多個線程執(zhí)行。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.10、transient 短暫

transient 關鍵字可以應用于類的成員變量,以便指出該成員變量不應在包含它的類實例已序列化時被序列化。mRi28資訊網(wǎng)——每日最新資訊28at.com

當一個對象被串行化的時候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進去的。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.11、volatile 易失

volatile 關鍵字用于表示可以被多個線程異步修改的成員變量。mRi28資訊網(wǎng)——每日最新資訊28at.com

注意:volatile 關鍵字在許多 Java 虛擬機中都沒有實現(xiàn)。volatile 的目標用途是為了確保所有線程所看到的指定變量的值都是相同的。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.12、native 本地

native 關鍵字可以應用于方法,以指示該方法是用Java以外的語言實現(xiàn)的,方法對應的實現(xiàn)不是在當前文件,而是在用其他語言(如C和C++)實現(xiàn)的文件中。。mRi28資訊網(wǎng)——每日最新資訊28at.com

Java不是完美的,Java的不足除了體現(xiàn)在運行速度上要比傳統(tǒng)的C++慢許多之外,Java無法直接訪問到操作系統(tǒng)底層(如系統(tǒng)硬件等),為此Java使用native方法來擴展Java程序的功能。mRi28資訊網(wǎng)——每日最新資訊28at.com

3.13、enum 枚舉

枚舉類型(Enumerated Type) 很早就出現(xiàn)在編程語言中,它被用來將一組類似的值包含到一種類型當中。而這種枚舉類型的名稱則會被定義成獨一無二的類型描述符,在這一點上和常量的定義相似。不過相比較常量類型,枚舉類型可以為申明的變量提供更大的取值范圍。mRi28資訊網(wǎng)——每日最新資訊28at.com

四、程序控制

4.1、流程判斷

if(布爾值) {    ...} else {    ...}

4.2、for循環(huán)

for (int i = 0; i < 10; i++) {    ...}

4.3、fore循環(huán)

for (數(shù)據(jù)類型 變量值 : 數(shù)組) {    ...}

4.4、while循環(huán)

while (布爾值) {    ...}

4.5、do...while循環(huán)

do {    ...} while (布爾值);

4.6、switch選擇

switch(變量){    case 值1 :       //語句       break; //可選    case 值2 :       //語句       break; //可選    //你可以有任意數(shù)量的case語句    default : //可選       //語句}

4.7、instanceof對象類型判斷

result = 需要判斷的對象 instanceof 已知對象result為布爾值

4.8、continue關鍵字

continue:表示跳過當前程序,繼續(xù)下一個,一般用于循環(huán)語句mRi28資訊網(wǎng)——每日最新資訊28at.com

for (int i = 0; i < 10; i++) {    if(i == 6){        //如果i等于6 ,就跳過,進行下一次循環(huán)        continue;    }}

4.9、break關鍵字

break:表示跳過當前程序,結(jié)束,一般用于循環(huán)語句mRi28資訊網(wǎng)——每日最新資訊28at.com

for (int i = 0; i < 10; i++) {    if(i == 6){        //如果i等于6 ,就跳過,結(jié)束循環(huán)語句        continue;    }}

4.10、return關鍵字

return:結(jié)束當前流程,返回結(jié)果!mRi28資訊網(wǎng)——每日最新資訊28at.com

return null;

4.11、assert關鍵字

assert:斷言是為了方便調(diào)試程序,并不是發(fā)布程序的組成部分。理解這一點是很關鍵的,后面會單獨介紹!mRi28資訊網(wǎng)——每日最新資訊28at.com

斷言是通過關鍵字assert來定義的,一般的,它有兩種形式。mRi28資訊網(wǎng)——每日最新資訊28at.com

#例如:assert <bool expression>;boolean isStudent = false; assert isStudent;
#例如:assert <bool expression> : <message>;boolean isSafe = false;  assert isSafe : "Not Safe at all";

五、錯誤處理

5.1、異常捕捉

try {    ...} catch (Exception e) {    //異常} finally {    //異常最終執(zhí)行語句}

5.2、異常拋出

throw new Exception();

對應的方法需要聲明跑出異常mRi28資訊網(wǎng)——每日最新資訊28at.com

throws Exception

例如:mRi28資訊網(wǎng)——每日最新資訊28at.com

public static void main(String[] args) throws Exception {    try {        System.out.println("hello world");    } catch (Exception e) {        throw new Exception();    } finally {        System.out.println("異常結(jié)束");    }}

六、基本數(shù)據(jù)類型

圖片圖片mRi28資訊網(wǎng)——每日最新資訊28at.com

七、變量引用

圖片圖片mRi28資訊網(wǎng)——每日最新資訊28at.com

八、包相關

8.1、import 引入

import 關鍵字使一個包中的一個或所有類在當前 Java 源文件中可見。可以不使用完全限定的類名來引用導入的類。mRi28資訊網(wǎng)——每日最新資訊28at.com

當多個包包含同名的類時,許多 Java 程序員只使用特定的 import 語句(沒有“*”)來避免不確定性。mRi28資訊網(wǎng)——每日最新資訊28at.com

8.2、package 包

package 關鍵字指定在 Java 源文件中聲明的類所駐留的 Java 包。mRi28資訊網(wǎng)——每日最新資訊28at.com

package 語句(如果出現(xiàn))必須是 Java 源文件中的第一個非注釋性文本。例:java.lang.Object。如果 Java 源文件不包含 package 語句,在該文件中定義的類將位于“默認包”中。請注意,不能從非默認包中的類引用默認包中的類。mRi28資訊網(wǎng)——每日最新資訊28at.com

九、保留字

正確識別java語言的關鍵字(keyword)和保留字(reserved word)是十分重要的。Java的關鍵字對java的編譯器有特殊的意義,他們用來表示一種數(shù)據(jù)類型,或者表示程序的結(jié)構(gòu)等。保留字是為java預留的關鍵字,他們雖然現(xiàn)在沒有作為關鍵字,但在以后的升級版本中有可能作為關鍵字。識別java語言的關鍵字,不要和其他語言如c/c++的關鍵字混淆。const和goto是java的保留字。所有的關鍵字都是小寫。mRi28資訊網(wǎng)——每日最新資訊28at.com

9.1、goto 跳轉(zhuǎn)

goto 保留關鍵字,但無任何作用。結(jié)構(gòu)化程序設計完全不需要 goto 語句即可完成各種流程,而 goto 語句的使用往往會使程序的可讀性降低,所以 Java 不允許 goto 跳轉(zhuǎn)。mRi28資訊網(wǎng)——每日最新資訊28at.com

9.2、const 靜態(tài)

const 保留字,是一個類型修飾符,使用const聲明的對象不能更新。與final某些類似。mRi28資訊網(wǎng)——每日最新資訊28at.com

十、總結(jié)

以上內(nèi)容,只是簡單的介紹一下java所有的關鍵字。mRi28資訊網(wǎng)——每日最新資訊28at.com

其實每個關鍵字都有很深的含義和應用場景,而且每個 java 的版本,一些關鍵字的應用可能還會有些變動,比如 jdk1.8 接口里面的方法可以用default修飾,實現(xiàn)接口的類,不必顯式的進行重寫改方法,所以,大家可以在實際的工作中去不斷的深入了解這些關鍵字,后面小編可能還會深入的分析每個關鍵字的作用,謝謝大家閱讀本文!mRi28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-94297-0.html盤點歷屆 Java 語言的關鍵字,一定有你不認識的

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 講完Go并發(fā)控制,講講并發(fā)抑制

下一篇: 停止使用花哨技巧編寫“優(yōu)雅”代碼!

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 日照市| 张北县| 武穴市| 竹山县| 江城| 新竹县| 大连市| 久治县| 永清县| 双牌县| 含山县| 平泉县| 襄樊市| 平陆县| 长沙市| 佛坪县| 象山县| 巴中市| 泗洪县| 霍邱县| 六安市| 保康县| 泰兴市| 乳山市| 宿州市| 宁国市| 宿迁市| 靖江市| 潼关县| 河北区| 营山县| 惠州市| 兰溪市| 安平县| 大竹县| 商都县| 河南省| 伊通| 政和县| 犍为县| 乌兰察布市|