溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JAVA中有哪些常用的關(guān)鍵字

發(fā)布時(shí)間:2021-07-23 16:05:12 來源:億速云 閱讀:181 作者:Leah 欄目:編程語言

JAVA中有哪些常用的關(guān)鍵字,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

  public(公共的)

  1、public 關(guān)鍵字是可以應(yīng)用于類、方法或字段(在類中聲明的變量)的訪問控制修飾符。

  2、可以在其他任何類或包中引用 public 類、方法或字段。

  3、除非存在特定的訪問控制修飾符,否則,可以從同一個(gè)包中的任何類訪問類成員。

  protected(受保護(hù)的)

  1、protected 關(guān)鍵字是可以應(yīng)用于類、方法或字段(在類中聲明的變量)的訪問控制修飾符。

  2、可以在聲明 protected 類、方法或字段的類、同一個(gè)包中的其他任何類以及任何子類(無論子類是在哪個(gè)包中聲明的)中引用這些類、方法或字段。

  3、除非存在特定的訪問控制修飾符,否則,可以從同一個(gè)包中的任何類訪問類成員。

  private(受保護(hù)的)

  1、private 關(guān)鍵字是可以應(yīng)用于類、方法或字段(在類中聲明的變量)的訪問控制修飾符。

  2、只能在聲明 private(內(nèi)部)類、方法或字段的類中引用這些類、方法或字段。在類的外部或者對(duì)于子類而言,它們是不可見的。

  3、只能在本類內(nèi)訪問類成員。

  用于定義類、函數(shù)、變量修飾符的關(guān)鍵字

  abstract(生命抽象)

  1、abstract關(guān)鍵字可以修改類或方法。

  2、abstract類可以擴(kuò)展(增加子類),但不能直接實(shí)例化。

  3、abstract方法不在聲明它的類中實(shí)現(xiàn),但必須在某個(gè)子類中重寫。

  4、采用 abstract方法的類本來就是抽象類,并且必須聲明為abstract。

  final(最終、不可改變)

  1、主要應(yīng)用在三個(gè)地方:變量、方法、類。

  2、對(duì)于一個(gè)final變量。如果是基本數(shù)據(jù)類型的變量,則其數(shù)值一旦初始化之后便不能更改;如果是引用類型的變量,則對(duì)其初始化之后便不能讓其再指向另一個(gè)對(duì)象。

  3、當(dāng)final修飾一個(gè)類時(shí),表明這個(gè)類不能被繼承,final類中所有成員方法都會(huì)被隱式地指定為final方法。

  4、使用final方法的原因有兩個(gè)。第一個(gè)原因是把方法鎖定,以防任何繼承類修改它的含義;第二個(gè)原因是效率,在早期的java實(shí)現(xiàn)版本中,會(huì)將final方法轉(zhuǎn)換為內(nèi)嵌調(diào)用。但如果方法過于龐大,可能看不到內(nèi)嵌調(diào)用帶來的任何性能提升(現(xiàn)在的java版本已經(jīng)不再需要使用final方法進(jìn)行這些優(yōu)化了)。類中所有的private方法都隱式地指定為final。

  static(靜態(tài))

  1、在Java語言中,static主要有4中使用情況:成員變量、成員方法、代碼塊和內(nèi)部類。

  2、用static關(guān)鍵字修飾的靜態(tài)變量和不用static關(guān)鍵字修飾的實(shí)例變量。靜態(tài)變量屬于類,在內(nèi)存中只有一個(gè)復(fù)制,只要靜態(tài)變量所在的類被加載,這個(gè)靜態(tài)變量就會(huì)被分配空間,因此就可以被使用了。對(duì)靜態(tài)變量的引用有兩種方式,分別是“類.靜態(tài)變量"和”對(duì)象.靜態(tài)變量"。

  實(shí)例變量屬于對(duì)象,只有對(duì)象被創(chuàng)建后,實(shí)例變量才會(huì)被分配內(nèi)存空間,才能被使用,它在內(nèi)存中存在多個(gè)復(fù)制,只有用“對(duì)象.實(shí)例變量”的方式來引用。

  3、Java中提供了static方法和非static方法。static方法是類的方法,不需要?jiǎng)?chuàng)建對(duì)象就可以被調(diào)用,而非static方法是對(duì)象的方法,只有對(duì)象被創(chuàng)建出來后才可以被使用。

  static方法中不能使用this和super關(guān)鍵字,不能調(diào)用非static方法,只能訪問所屬類的靜態(tài)成員變量和成員方法,因?yàn)楫?dāng)static方法被調(diào)用時(shí),這個(gè)類的對(duì)象可能還沒被創(chuàng)建,即使已經(jīng)被創(chuàng)建了,也無法確定調(diào)用哪個(gè)對(duì)象的方法。同理,static方法也不能訪問非static類型的變量。

  4、static代碼塊在類中是獨(dú)立于成員變量和成員函數(shù)的代碼塊的。注意:這些static代碼塊只會(huì)被執(zhí)行一次

  5、static(內(nèi)部)類可以被其他類實(shí)例化和引用(即使它是頂級(jí)類)。

  6、static與final結(jié)合使用表示的意思:

  對(duì)于變量,若使用static final修飾,表示一旦賦值不能修改,并且通過類名可以訪問。

  對(duì)于方法,若使用static final修飾,表示該方法不可被覆蓋,并且可以通過類名直接訪問。

  synchronized(線程、同步)

  1、synchronized 關(guān)鍵字可以應(yīng)用于方法或語句塊,并為一次只應(yīng)由一個(gè)線程執(zhí)行的關(guān)鍵代碼段提供保護(hù)。

  2、synchronized 關(guān)鍵字可防止代碼的關(guān)鍵代碼段一次被多個(gè)線程執(zhí)行。

  3、如果應(yīng)用于靜態(tài)方法,那么,當(dāng)該方法一次由一個(gè)線程執(zhí)行時(shí),整個(gè)類將被鎖定。

  4、如果應(yīng)用于實(shí)例方法,那么,當(dāng)該方法一次由一個(gè)線程訪問時(shí),該實(shí)例將被鎖定。

  5、如果應(yīng)用于對(duì)象或數(shù)組,當(dāng)關(guān)聯(lián)的代碼塊一次由一個(gè)線程執(zhí)行時(shí),對(duì)象或數(shù)組將被鎖定。

  由于定義類與類之間關(guān)系的的關(guān)鍵字

  extends(繼承、擴(kuò)展)

  1、extends 關(guān)鍵字用在 class 或 interface 聲明中,用于指示所聲明的類或接口是其名稱后跟有 extends 關(guān)鍵字的類或接口的子類。

  2、子類繼承父類的所有 public 和 protected 變量和方法。

  3、子類可以重寫父類的任何非 final 方法。

  4、一個(gè)類只能擴(kuò)展一個(gè)其他類。

  implements(實(shí)現(xiàn))

  1、implements 關(guān)鍵字在 class 聲明中使用,以指示所聲明的類提供了在 implements 關(guān)鍵字后面的名稱所指定的接口中所聲明的所有方法的實(shí)現(xiàn)。

2、類必須提供在接口中所聲明的所有方法的實(shí)現(xiàn)。

  3、一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。

  由于定義建立實(shí)例及引用實(shí)例,判斷實(shí)例的關(guān)鍵字。

  new (新,創(chuàng)建)

  1、new 關(guān)鍵字用于創(chuàng)建類的新實(shí)例。

  2、new 關(guān)鍵字后面的參數(shù)必須是類名,并且類名的后面必須是一組構(gòu)造方法參數(shù)(必須帶括號(hào))。

  3、參數(shù)集合必須與類的構(gòu)造方法的簽名匹配。

  4、= 左側(cè)的變量的類型必須與要實(shí)例化的類或接口具有賦值兼容關(guān)系。

  this(本類)

  1、this 關(guān)鍵字用于引用當(dāng)前實(shí)例。

  2、當(dāng)引用可能不明確時(shí),可以使用 this 關(guān)鍵字來引用當(dāng)前的實(shí)例。

  super(父類、超類)

  1、super 關(guān)鍵字用于引用使用該關(guān)鍵字的類的超類。

  2、作為獨(dú)立語句出現(xiàn)的 super 表示調(diào)用超類的構(gòu)造方法。

  3、super.() 表示調(diào)用超類的方法。只有在如下情況中才需要采用這種用法:要調(diào)用在該類中被重寫的方法,以便指定應(yīng)當(dāng)調(diào)用在超類中的該方法。

  instanceof(實(shí)例)

  1、instanceof 關(guān)鍵字用來確定對(duì)象所屬的類。

  用于處理異常的關(guān)鍵字

  try(捕獲異常)

  1、try 關(guān)鍵字用于包含可能引發(fā)異常的語句塊。

  2、每個(gè) try 塊都必須至少有一個(gè) catch 或 finally 子句。

  3、如果某個(gè)特定異常類未被任何 catch 子句處理,該異常將沿著調(diào)用棧遞歸地傳播到下一個(gè)封閉 try 塊。如果任何封閉 try 塊都未捕獲到異常,Java 解釋器將退出,并顯示錯(cuò)誤消息和堆棧跟蹤信息。

  catch(處理異常)

  1、catch 關(guān)鍵字用來在 try-catch 或 try-catch-finally 語句中定義異常處理塊。

  2、開始和結(jié)束標(biāo)記 { 和 } 是 catch 子句語法的一部分,即使該子句只包含一個(gè)語句,也不能省略這兩個(gè)標(biāo)記。

  finally(必須執(zhí)行)

  1、finally關(guān)鍵字用來定義始終在try-catch-finally語句中執(zhí)行的塊。

  2、finally塊通常包含清理代碼,用在部分執(zhí)行try塊后恢復(fù)正常運(yùn)行。

  3、finally塊的return語句優(yōu)先執(zhí)行。

  throw(拋出一個(gè)異常對(duì)象)

  1、throw 關(guān)鍵字用于引發(fā)異常。

  2、throw 語句將 java.lang.Throwable 作為參數(shù)。Throwable 在調(diào)用棧中向上傳播,直到被適當(dāng)?shù)?catch 塊捕獲。

  3、引發(fā)非 RuntimeException 異常的任何方法還必須在方法聲明中使用 throws 修飾符來聲明它引發(fā)的異常。

  throws(聲明一個(gè)異??赡鼙粧伋?

  1、throws 關(guān)鍵字可以應(yīng)用于方法,以便指出方法引發(fā)了特定類型的異常。

  2、throws 關(guān)鍵字將逗號(hào)分隔的 java.lang.Throwables 列表作為參數(shù)。

  3、引發(fā)非 RuntimeException 異常的任何方法還必須在方法聲明中使用 throws 修飾符來聲明它引發(fā)的異常。

  4、要在 try-catch 塊中包含帶 throws 子句的方法的調(diào)用,必須提供該方法的調(diào)用者。

  用于包的關(guān)鍵字

  package(包)

  1、package 關(guān)鍵字指定在 Java 源文件中聲明的類所駐留的 Java 包。

  2、package 語句(如果出現(xiàn))必須是 Java 源文件中的第一個(gè)非注釋性文本。

  例:java.lang.Object。

  如果 Java 源文件不包含 package 語句,在該文件中定義的類將位于“默認(rèn)包”中。請(qǐng)注意,不能從非默認(rèn)包中的類引用默認(rèn)包中的類。

  import(引入)

  1、import 關(guān)鍵字使一個(gè)包中的一個(gè)或所有類在當(dāng)前 Java 源文件中可見??梢圆皇褂猛耆薅ǖ念惷麃硪脤?dǎo)入的類。

  2、當(dāng)多個(gè)包包含同名的類時(shí),許多 Java 程序員只使用特定的 import 語句(沒有“*”)來避免不確定性。

看完上述內(nèi)容,你們掌握J(rèn)AVA中有哪些常用的關(guān)鍵字的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI