【JAVA基礎】JAVA 53個關鍵字總結

1. 簡化版

關鍵字 含義 關鍵詞 含義
abstract 表明類或成員方法具有抽象的屬性 assert 斷言,用於程序調試
boolean 基本數據類型之一,布爾類型 break 用於跳出當前塊,例如循環的跳出
byte 基本數據類型之一,字節類型 case 用於switch語句中,表示其中的一個分支情況
catch 用於異常處理,用來捕獲異常 char 基本數據類型之一,字符類型
class 聲明一個類 const 兩個保留字之一,表示以後可能會用到
continue 循環中使用,表示越過當前循環體的剩餘部分,立刻跳到循環體首部 default 默認,例如,switch語句中,表示一個默認的分支
do 用於do-while循環中,後帶循環的條件 double 基本數據類型之一,雙精度浮點類型
else if-else條件語句中,表示條件不成立時的分支 enum 枚舉類型
extends 繼承,表示一個類繼承於另外一個類 false boolean類型的取值,表示錯誤
final 表示不可修改,第二部分細講 finally 用於異常處理,聲明異常處理流程中一定會執行的語句塊
float 基本數據類型之一,單精度浮點類型 for 循環的引導詞
goto 兩個保留字之一,表示以後可能會用到 if if-else條件語句中,表示條件成立時的分支
implements 表示一個類實現了給定的接口 import 表示導入指定的類或包
instanceof 用於測試一個對象是否是指定對象的實例對象 int 基本數據類型之一,整數類型
interface 聲明一個接口 long 基本數據類型之一,長整數類型
package public 表示訪問控制方式:公有模式
private 表示訪問控制方式:私有模式 protected 表示訪問控制方式:保護模式
native 用於修飾方法,表示該方法由其他語言實現 new 用來創建新實例對象
null 空值 return 表示從成員方法中返回
short 基本數據類型之一,短整數類型 super 表示當前對象的父類型的引用或父類型構造方法
static 表明具有靜態屬性 strictfp 用來聲明FP_strict(單精度或雙精度浮點數)表達式遵循IEEE 754算術規範
switch 分支語句結構的引導詞 synchronzed 表明一段代碼同步執行
this 指向當前實例對象的引用 throw 拋出一個異常
throws 聲明在當前定義的成員方法中所有需要拋出的異常 transient 聲明不用序列化的成員域
true boolean類型的取值,表示正確 try
void 聲明當前成員方法沒有返回值 volatile 表明線程在每次使用變量的時候,都會讀取變量修改後的最的值
while 循環結構

2. 詳解版

2.1. 數據類型

對於數據類型,沒有什麼好說的,包括:

  • 8個基本數據類型:floatdoublebyteshortintlongbooleanchar
  • 其他相關的:nullvoidtruefalse
  • enum

最後一個爲枚舉類型,作用爲:用於聲明一組命名的常數,當一個變量有幾種可能的取值時,可以將它定義爲枚舉類型,具體格式舉例:

public enum Color {  
  RED, GREEN, BLANK, YELLOW  
} 

看到一篇比較詳細的博客,關於枚舉類型的7種常見用法:
https://blog.csdn.net/qq_27093465/article/details/52180865

2.2. 與包相關

  • package:表示包
  • import:導入包

關於導包,有一個小的注意點:如果我們現在要在permutation中導入blog.aa.Hello類:

在這裏插入圖片描述
導入的語句:
在這裏插入圖片描述
或者也可以用:
在這裏插入圖片描述
但不能用下面的語句:因爲這個語句的意思是,blog的下一級包中的所有類,不包含blog包中裏面的包裏的類。這樣子做的目的是爲了區分:如果blog中有一個hello類,blog.aa包中也有一個hello類,通過這個規則,就可以準確的區別用戶導入的具體是什麼包
在這裏插入圖片描述

2.3. 訪問修飾符的關鍵字

  • public,protected,private

2.4. 流程控制(循環、條件)

  • 循環:do,while,for,continue,break
  • 條件:if,else,switch,case,default
  • return

2.5. 錯誤處理

  • trycatchfinallythrowthrows
  • finally:只用於 try/catch 語句中,表示這段語句最終一定被執行
  • throw 和 throws 的區別:
    • throw 是語句拋出一個異常;throws 是方法拋出一個異常
    • throw語句用在方法體內,表示拋出異常,由方法體內的語句處理,throws語句用在方法聲明後面,表示再拋出異常,由調用這個方法的上一級方法中的語句來處理

2.6. 保留字

  • const
  • goto
  • 對於保留字,就是當前沒有意義,但以後可能會使用,防止後面修改爲關鍵字後,代碼已經使用了這些關鍵字作爲變量,所以先設爲保留字,防止被使用

2.7. 類相關

  • classinterfaceabstractextendsnewimplements
  • thissuper
    • this:
      • 引用隱式參數
      • 調用該類其他的構造器
    • super:
      • 調用超類的方法
      • 調用超類的構造器
  • static:主要有4種使用情況:成員變量、成員方法、代碼塊、內部類
    • 成員變量:static 關鍵字修飾的成員變量,起到全局變量的作用,在內存中只有一個複製(所有實例都指向同一個內存地址),只要靜態變量所在的類被加載,這個靜態變量就會被分配空間。注意:Java語言中,不能在方法體中定義static變量。
    • 成員方法:static 方法中不能使用 this 和 super 關鍵字,不能調用非 static 方法,只能訪問所屬類的靜態成員變量和成員方法。原因:調用這個方法的時候,可能這個類的對象還沒有創建,例如:Math.max(a, b);此時,並沒有創建Math實例
    • 代碼塊:靜態代碼塊在類中獨立於成員變量和成員函數的代碼塊,不在任何一個方法體中,JVM加載類時會執行 static 代碼塊。
    • 內部類:可以不依賴於外部類實例對象而被實例化的類。
  • instanceof:一個二元運算符,它的作用是判斷一個引用類型的變量所指向的對象是否是一個類(或接口、抽象類、父類)的實例,即它左邊是否是它右邊的類的實例
public class Test {
	public static void main(String args[]) {
		String s = "Hello";
		if (s instanceof String) {
			System.out.println("true");
		}
		if (s instanceof Object) {
			System.out.println("true");
		}
	}
}
  • final:用於聲明屬性、方法和類,分別表示,屬性不可變方法不可覆蓋類不可被繼承,注意,這裏屬性不可變,對於引用類型,這裏指引用不可變,並非是對象不可變。舉例:
	public static void main(String[] args) {
        final StringBuilder sb = new StringBuilder("hello");
        sb.append(" java");
        System.out.println(sb.toString());
    }

上面這段代碼是可以順利執行的,final指的是引用的不可變性,即它只能指向初始時指向的那個對象,而不關心指向對象內容的變化。例如上面例子中,指向的對象內容變化,但依舊可以順利執行。
而當我們修改它的指向時,就會報錯:
在這裏插入圖片描述

2.8. 線程

  • synchronized:表示指定的方法or代碼塊需要同步執行
  • volatile:對於共享的數據,爲了提高效率 ,線程有自己的一份數據,但不一定是罪行的數據,volatile 修飾的對象使用時,必須去讀取主存,將數值更新爲最新值

2.9. 斷言

  • assert
  • 斷言提供了一種在代碼中進行正確性檢查的機制。它的作用是對一個 boolean 表達式進行檢查,一個正確運行的程序必須保證這個 boolean 表達式的值爲 true,若 boolean 表達式的值爲 false,則說明程序已經處於一種不正確的狀態下,系統需要提供告警信息並且退出程序。

2.10. transient

  • transient 用於序列化操作中,用來表示一個域不是該對象串行化的一部分。當一個對象被串行化的時候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進去的。

2.11. native

  • native關鍵詞修飾的方法是一個原生態方法,方法對應的實現不是在當前文件,而是在其他語言中實現的,這個關鍵主要跟 JNI技術相結合使用,這裏附上一個關於JNI的demo的鏈接:https://blog.csdn.net/Applying/article/details/81572167

2.12. strictfp

  • strictfp 是 strict float point 的縮寫,指的是精確浮點,用來確保浮點數運算的準確性。strictfp 可以用來修飾類、接口或者方法。
    private static strictfp void count() {
        float f = 0.123f;
        double d = 0.356;
        System.out.println(f + d);
    }
    // 這裏,輸出的結果爲: 0.47900000339746474
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章