Java中的關鍵字和標識符__Java

來源:互聯網
上載者:User

一.Java中對goto關鍵字的處理

在Java中,我們不能使用goto關鍵字,而是使用迴圈標籤,但是為了避免程式員自行使用goto,所以保留了goto作為一個關鍵字。類似的關鍵字還有const。

二.true、false、null是否是關鍵字

在Java中,true、false、null都不是關鍵字,而是字面常量(也稱為直接量),其中,true和false是布爾類型的字面常量,null是參考型別的字面常量。這三個字面常量也不能作為標識符使用。

三.Java中的關鍵字

關鍵字 含義
abstract 表明類或者成員方法具有抽象屬性
assert 用來進行程式調試
boolean 基礎資料型別 (Elementary Data Type)之一,布爾類型
break 提前跳出一個塊
byte 基礎資料型別 (Elementary Data Type)之一,位元組類型
case 用在switch語句之中,表是其中的一個分支
catch 用在異常處理中,用來捕捉異常
char 基礎資料型別 (Elementary Data Type)之一,字元類型
class
const 保留關鍵字,沒有具體含義
continue 回到一個塊的開始處
default 預設,例如,用在switch語句中,表明一個預設的分支
do 用在do-while迴圈結構中
double 基礎資料型別 (Elementary Data Type)之一,雙精確度浮點數類型
else 用在條件陳述式中,表明當條件不成立時的分支
enum 枚舉
extends 表明一個類型是另一個類型的子類型,這裡常見的類型有類和介面
final 用來說明最終屬性,表明一個類不能派生出子類,或者成員方法不能被覆蓋,或者成員域的值不能被改變
finally 用於處理異常情況,用來聲明一個基本肯定會被執行到的語句塊
float 基礎資料型別 (Elementary Data Type)之一,單精確度浮點數類型
for 一種迴圈結構的引導詞
goto 保留關鍵字,沒有具體含義
if 條件陳述式的引導詞
implements 表明一個類實現了給定的介面
import 表明要訪問指定的類或包
instanceof 用來測試一個對象是否是指定類型的執行個體對象
int 基礎資料型別 (Elementary Data Type)之一,整數類型
interface 介面
long 基礎資料型別 (Elementary Data Type)之一,長整數類型
native 用來聲明一個方法是由與電腦相關的語言(如C/C++/FORTRAN語言)實現的
new 用來建立新執行個體對象
package
private 一種存取控制方式:私用模式
protected 一種存取控制方式:保護模式
public 一種存取控制方式:共用模式
return 從成員方法中返回資料
short 基礎資料型別 (Elementary Data Type)之一,短整數類型
static 表明具有靜態屬性
strictfp 用來聲明FP_strict(單精確度或雙精確度浮點數)運算式遵循IEEE 754算術規範
super 表明當前對象的父類型的引用或者父類型的構造方法
switch 分支語句結構的引導詞
synchronized 表明一段代碼需要同步執行
this 指向當前執行個體對象的引用
throw 拋出一個異常
throws 聲明在當前定義的成員方法中所有需要拋出的異常
transient 聲明不用序列化的成員域
try 嘗試一個可能拋出異常的程式塊
void 聲明當前成員方法沒有傳回值
volatile 表明兩個或者多個變數必須同步地發生變化
while 用在迴圈結構中
四.Java標識符的定義規則

1.大多數人理解的Java標誌符的定義規則:

(1).標識符由字母、數字、貨幣符號(¥、$)、串連符號(_)組成。

(2).標識符的首字母可以是字母、貨幣符號與串連符號,但是不能為數字。

(3).標識符不能與Java中的關鍵字相同。

(4).標識符不能與Java中預定義的字面常量名稱相同(如true、false、null)。

上面的規則在大部分時候是正確的,但是要注意這裡的字母不只是傳統中的26個英文字母,而是Unicode字元集,Unicode字元集的取值範圍是U+0000~U+10FFFF,但是不是每一個Unicode值都與一個字元相對應,這就意味著不是整個Unicode字元集都可以作為Java中的標識符。還有就是不能作為Java標識符首字母的字元集,也不僅僅是簡單的0~9這10個數字。那麼我們怎麼判斷一個Unicode是否可以作為Java標識符呢。在Character中有這樣兩個方法可以進行判斷:

public static boolean isJavaIdentifierStart(char ch);判斷對應的字元是否可以作為Java的標識符的首字元

public static boolean isJavaIdentifierPart(char ch);判斷對應的字元是否可以作為Java的標識符

由於Unicode字元集的擴充,為了能夠處理增補字元(U+10000~U+10FFFF),在jdk1.5中增加了兩個方法,也用於此作用:

public static boolean isJavaIdentifierStart(int codePoint);判斷代碼點對應的字元是否可以作為Java的標識符的首字元

public static boolean isJavaIdentifierPart(int codePoint);判斷代碼點對應的字元是否可以作為Java的標識符

2.現在,我們重新定義一下標識符的定義規則:

(1).標識符的首字母對應的代碼點必須使得Character類的isJavaIdentifierStar()方法傳回值為true,後續的字元對應的代碼點必須使得Character類的isJavaIdentifierPart()的傳回值為true。

(2).標識符不能與Java中的關鍵字相同。

(3).標識符不能和Java中預定義的字面常量名稱相同。

(4).標識符的長度必須在系統所支援的範圍內。

五.注意符號“$”的使用

在定義Java標識符的時候,我們可以使用$,並且可以使用它作為標識符的首字母,但是我們需要注意$這個符號可以在內部類中使用,所以當我們使用$作為關鍵字字元時,需要考慮到這一點。

public class User$Vip {public static void main(String[] args) {}}class User{class Vip{void print(){System.out.println("vip");}}}

上面這個例子就是因為類標誌符中使用$,與內部類中的$衝突,所以編譯的時候會報錯,提示User.Vip類重複了。其原因是在編譯為class檔案的時候,會存在兩個User$Vip.class,所以會報錯。

六.標識符的最大長度

在Java語言規範中,對於Java標誌符的長度是沒有限制的,但是在Java虛擬機器規範中,標識符是有長度限制的。在class檔案中,代表標識符的常量字串儲存在CONSTANT_Utf8_info表中,這個表用了兩個位元組的來表示字串的長度。所以最大表示65535.



 







聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.