[转载] Java中的50个关键字
參考鏈接: Java平臺如何獨(dú)立
Java中的50個關(guān)鍵字?
? ? 關(guān)鍵字也稱為保留字,是指java語言中規(guī)定了特定含義的標(biāo)示符。對于保留字,用戶只能按照系統(tǒng)規(guī)定的方式使用,不能自行定義。Java中有50個常用關(guān)鍵字:?
與數(shù)據(jù)類型相關(guān)(10)?
??
關(guān)鍵字類型占字節(jié)數(shù)備注boolean布爾數(shù)據(jù)類型1有true和false兩個值int整型數(shù)據(jù)類型4 long長整型數(shù)據(jù)類型8 short短整型數(shù)據(jù)類型2 byte字節(jié)數(shù)據(jù)類型1大小范圍為-27—27-1float浮點(diǎn)型(實(shí)數(shù)型)4 double雙精度型數(shù)據(jù)類型8 char字符型數(shù)據(jù)類型2(Unicode碼) class表示一個類不確定可用于定義一個類。interface表示一個接口不確定可用于定義一個接口?
與流程控制相關(guān)(13)?
?
if: 表示條件判斷,一般用法if(關(guān)系表達(dá)式),后跟else或{……}?
?
else: 條件轉(zhuǎn)折,如if (關(guān)系表達(dá)式){語句塊1}else{語句塊2},如果關(guān)系表達(dá)式的值為true,則執(zhí)行語句塊1,否則執(zhí)行語句塊2.?
?
do……while……:do和while一般一起使用,用于表示循環(huán)語句。do{……}while(關(guān)系表達(dá)式)……;當(dāng)關(guān)系表達(dá)式的值為true是繼續(xù)循環(huán)。?
?
for:用于表示循環(huán),for循環(huán)是最常使用的循環(huán),格式for(表達(dá)式a; 表達(dá)式b; 表達(dá)式c)括號里面的書通常用于控制循環(huán)的次數(shù),一般會用一個int類型的變量類計(jì)數(shù),如(int i=0; i<10; i++)表達(dá)式a用于流程控制的開始值,表達(dá)式b表示循環(huán)終止條件,表達(dá)式c用于計(jì)數(shù)。?
?
switch(條件a)case……:switch和case合起來用于表示條件分支流程。如: while(int c) { case 1: {語句塊1}? case 2: {語句塊2} ……?????? …… case n: {語句塊n} default:exit(0); }?
如果c為1,則執(zhí)行語句塊1;如果c為2,則執(zhí)行語句塊2;以此類推,如果c為n,則執(zhí)行語句塊n。default表示除case以外出現(xiàn)的情況。?
?
default:在switch……case……分支語句可知,default是在所有case條件下都不成立時使用。用于包表示s“rc”文件夾下的當(dāng)前包;如果用于類,表示只可被本文件內(nèi)的其它類訪問。?
?
break:用于結(jié)束本層循環(huán),或跳出某層循環(huán)。?
?
continue:用于跳出本次循環(huán),而break跳出本層循環(huán)。Break和continue可以實(shí)現(xiàn)類似于C\C++中g(shù)oto語句的用法: label0: { for (int k = 0; k < 10; k++) { ..........? label1: for (int j = 0; j < 10; j++) { ................ break label0; //跳轉(zhuǎn)至label0 } ........... label2: for (int kk = 0; kk < 10; kk++) { .............. break label0; //跳至label2?
} }?
?
return:返回一個值,通常用于函數(shù)中,返回一個具有特定類型的值。如:?
public int fuction()
?
{
?
int a;?
?
……
?
return a;
//返回int型的值
?
}?
?
?
try……catch……finally……:用于異常處理,使用形式如:?
try{ …… }catch(類型b){ …… }finally{ …… }?
try{……}中放置可能會發(fā)生異常的的語句塊,catch(){……}用于抓住異常,{}定義當(dāng)出現(xiàn)異常時的處理方法。finally{……}表示不管異常是否發(fā)生,都得進(jìn)行finally{}中的處理。?
?
與修飾符相關(guān)(12)?
?
不同訪問修飾符的訪問權(quán)限?
范圍本類同軟件包不同包中子類不同包且無繼承作用(含義) public可以可以可以可以公有的 protect可以可以可以 受保護(hù)的 default(無權(quán)限修飾符)可以可以? 當(dāng)前的 private可以? ?私有的?
如:?
一個".java"后綴名的文件里面只能一個publi型的cass類。如c13.swing包下有HelloWorld.java 文件,該文件下有如下代碼:
package c13.swing;
public class HelloWorld {
? ? public void show() {
? ? ? ? System.out.println("HelloWorld!");
? ? }????
}
在default包下有如下代碼:
import c13.swing.*;//引入所需要的包里的所有類
public class Test {
? ? public static void main(String args[]) {
? ? ? ? HelloWorld h = new HelloWorld();
? ? ? ? h.show();
? ? }
}
此時運(yùn)行正常,結(jié)果:HelloWorld!
如果把public class HelloWorld改成privateclass HelloWorld則會運(yùn)行錯誤,因?yàn)閜rivate是私有的不能被其他包內(nèi)的對象所引用。?
?
final:(類似于C++中的const),用法如下: a,final的變量的值不能被改變;1),final的成員變量; 2)final的局部變量; b,final的方法不能被重寫; c,final的類不能被繼承。?
?
void:空類型,用于函數(shù)前表示空返回值。?
?
static:可用于定義靜態(tài)成員變量或方法?
?
strictfp:意思是FP-strict,也就是說精確浮點(diǎn)的意思。在Java虛擬機(jī)進(jìn)行浮點(diǎn)運(yùn)算時,如果沒有指定strictfp關(guān)鍵字時,Java的編譯器以及運(yùn)行環(huán)境在對浮點(diǎn)運(yùn)算的表達(dá)式是采取一種近似于我行我素的行為來完成這些操作,以致于得到的結(jié)果往往無法令你滿意。而一旦使用了strictfp來聲明一個類、接口或者方法時,那么所聲明的范圍內(nèi)Java的編譯器以及運(yùn)行環(huán)境會完全依照浮點(diǎn)規(guī)范IEEE-754來執(zhí)行。因此如果你想讓你的浮點(diǎn)運(yùn)算更加精確,而且不會因?yàn)椴煌挠布脚_所執(zhí)行的結(jié)果不一致的話,那就請用關(guān)鍵字strictfp。? ?你可以將一個類、接口以及方法聲明為strictfp,但是不允許對接口中的方法以及構(gòu)造函數(shù)聲明strictfp關(guān)鍵字,例如下面的代碼:??
1. 合法的使用關(guān)鍵字strictfp? strictfp interface A {}?
public strictfp class FpDemo1 {? strictfp void f() {}? }? 2. 錯誤的使用方法? interface A {? strictfp void f();? }?
public class FpDemo2 {? strictfp FpDemo2() {}? }?
一旦使用了關(guān)鍵字strictfp來聲明某個類、接口或者方法時,那么在這個關(guān)鍵字所聲明的范圍內(nèi)所有浮點(diǎn)運(yùn)算都是精確的,符合IEEE-754規(guī)范的。例如一個類被聲明為strictfp,那么該類中所有的方法都是strictfp的。?
?
abstract:抽象的意思,可以用定義抽象類,抽象函數(shù)。抽象類的用法規(guī)則如下: a,用abstract關(guān)鍵字來修飾一個類時,這個類叫做抽象類;用abstract來修飾一個方法時,這個方法叫做抽象方法; b,含有抽象方法的類必須被聲明為抽象類,抽象類必須被繼承,抽象方法必須被重寫; c,抽象類不能被實(shí)例化; d,抽象方法只需聲明,而不需實(shí)現(xiàn)。?
?
transient: Java語言的關(guān)鍵字,用來表示一個域不是該對象串行化的一部分。當(dāng)一個對象被串行化的時候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進(jìn)去的。? 使用對象:字段 介紹:字段不是對象持久的一部分,不應(yīng)該字段和對象一起串起。?
?
synchronized:鎖定當(dāng)前對象,在執(zhí)行當(dāng)前這個對象時不應(yīng)許其他線程打斷插入。使用的方式有:?
這是我在暑假學(xué)習(xí)做的筆記?
(1),class Timer { private static int num = 0; public synchronized void add(String name) { //執(zhí)行這個方法的過程中鎖定當(dāng)前對象。 num ++; try { Thread.sleep(1); } catch( InterruptedException e) { return; } System.out.println(name + ",你是第" + num +"使用Timer的線程。"); } } (2),class Timer { private static int num = 0; public void add(String name) {? synchronized(this) { //鎖定大括號這個區(qū)域的代碼段 num ++; try { Thread.sleep(1); } catch( InterruptedException e) { return; } System.out.println(name + ",你是第" + num +"使用Timer的線程。"); } } }?
?
volatile:volatile變量一個時間只有一個線程可以訪問。 保證線程安全。? 可以被寫入 volatile 變量的這些有效值獨(dú)立于任何程序的狀態(tài),包括變量的當(dāng)前狀態(tài)。? 所以,Volatile 變量是一種非常簡單但同時又非常脆弱的同步機(jī)制,它在某些情況下將提供優(yōu)于鎖的性能和伸縮性。?
?
native:是用作java 和其他語言(如c++)進(jìn)行協(xié)作時用的也就是native 后的函數(shù)的實(shí)現(xiàn)不是用java寫的, native的意思就是通知操作系統(tǒng),這個函數(shù)你必須給我實(shí)現(xiàn),因?yàn)槲乙褂谩K詎ative關(guān)鍵字的函數(shù)都是操作系統(tǒng)實(shí)現(xiàn)的, java只能調(diào)用。?
?
與動作相關(guān)(10)?
?
package:打包,把java程序?qū)懺谝粋€包中。?
?
import:引入報名,用法:? a,寫全包名:jsxt.java140.Cat c = new com.bjsxt.java140.Cat a,引入一個包中的具體某個對象:xt.java140.Cat; b,引入一個包中的所有象:import com.bjsxt.java140.Cat.*;?
?
throw:拋出用戶自己定義的異常?
?
throws:拋出系統(tǒng)異常?
?
extends:繼承(類繼承類,或接口繼承接口)?
?
implements:實(shí)現(xiàn),通過類來實(shí)現(xiàn)接口?
?
this:是指向該對象自身的標(biāo)示符?
?
super:調(diào)用基類的構(gòu)造函數(shù)?
?
instanceof:判斷某個對象是否為自己所要的對象?
?
new:用于新建一個對象,即類的實(shí)例化?
?
其他(5)?
?
true:表示boolean類型的真值?
?
false:表示boolean類型的假值,即不成立的情況?
?
null:表示空值,如果是對象,則表示此對象為空,如果是數(shù)據(jù)類型,在表示相應(yīng)數(shù)據(jù)類型的默認(rèn)值,如int的默認(rèn)值為0。?
?
goto:C\C++中實(shí)現(xiàn)無條件轉(zhuǎn)向語句,為了結(jié)構(gòu)化程序設(shè)計(jì)java中現(xiàn)在一般不用。?
?
const:和const一樣,在Java中,const是作為保留字以備擴(kuò)充??梢杂胒inal替換const,一般C++中用const,java中用final。
總結(jié)
以上是生活随笔為你收集整理的[转载] Java中的50个关键字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux pcre静态编译,Linux
- 下一篇: 8代cpu能跑linux,Intel公布