java基礎知識(三)java關鍵字


  關鍵字是電腦語言事先定義的,是特別意義的標識符,又叫保留字。用來表示一種數據類型或程序的結構等,關鍵字不能用作變量名、類名、方法名或參數。java目前共有50個關鍵字,其中"const"和"goto"這兩個關鍵字在Java語言中並沒有具體含義(未被使用)。

1、關鍵字總覽

  基本數據類型(9):boolean、char、byte、short、int、long、float、double、null

  變量引用(2):super、this

  類、方法、變量修飾符(15):class、abstract(類、方法)、interface、enum、static(程序塊、方法、內部類、變量)、final(類、方法、常量)、extends、implements、new、strictfp、synchronized、transient、volatile、native、void

  程序結構(11):if、else、for、do、while、switch、case、continue、break、return、instanceof

  java包(2):import、package

  訪問控制(4):private(屬性、方法)、default(類、屬性、方法)、protected(屬性、方法)、public(類、屬性、方法)

  異常處理(5):try、catch、throw、throws、finally

  未使用(2):goto、const

2、關鍵字基本含義

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

3、重點介紹

  1)訪問權限private(私有)、default(包)、protected(包、繼承)、public(公有)

  

  注意:class只能用public、default修飾,除了內部類。

  2)final、finally、finalize

  final用於聲明屬性(常量),方法和類,分別表示屬性不可改變,方法不可覆蓋,類不可繼承(因此一個類不可以即申明為abstract,又申明為final)。

  finally是異常處理語句結構的一部分,表示總是執行(需要自己在方法中添加finally執行的內容)。

  finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,供垃圾收集時的其他資源回收,例如關閉文件等。

  3)continue、break、return

  continue:終止本次循環的執行,即跳過本次循環未執行的代碼直接進入下次循環

  break:在循環體內則是強行結束整個循環,直接轉向循環下面的語句;在switch語句內則表示跳出switch語句體。

  return:返回一個值給調用該方法的語句;中斷函數執行,返回調用函數處

  4)static、final

  static是靜態修飾關鍵字,可以修飾變量、程序塊以、內部類、方法。static修飾變量時jvm會將將其分配在內存數據段上,所有程序對它的引用都會指向這一個地址而不會重新分配內存,此變量可以通過類名直接訪問;當修飾一個程序塊的時候(也就是直接將代碼寫在static{...}中)時候,虛擬機就會優先加載靜態塊中代碼,這主要用於系統初始化;當修飾內部類的時候被稱為嵌套內部類(在類博文中介紹);當修飾一個方法時候你就可以直接通過類來調用這個方法而不需要新建對象。

  final可以修飾變量、方法、類(2中已有介紹)。

  網上有說常量存儲在PermGen space中(java常量池存放在哪里),查找可知PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域,這塊內存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到PermGen space中,它和存放類實例(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的應用中有很多CLASS的話,就很可能出現PermGen space錯誤,這種錯誤常見在web服務器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小超過了jvm默認的大小(4M)那么就會產生此錯誤信息了。

  又看到這樣一篇文章JAVA中String類的intern()方法的作用,所以基本可以確定常量被存儲在永久保存區域(PermGen space)中。

  通過這篇文章java中堆棧(stack)和堆(heap)可以知道PermGen space其實就是我們java中經常說的代碼區。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM