超詳細(xì)java關(guān)鍵字介紹(一)

三人行必有我?guī)煟松切枰粩鄬W(xué)習(xí)的焰络,在這里我們相遇就是緣分戴甩,希望各位可以看完這篇文章,也歡迎大家在下面留言討論闪彼,天冷了甜孤,也動(dòng)動(dòng)手指轉(zhuǎn)發(fā)收藏一下,謝謝大家畏腕!

1.訪問控制

1)private私有的

private關(guān)鍵字是訪問控制修飾符缴川,可以應(yīng)用于類、方法或字段(在類中聲明的變量)描馅。只能在聲明private(內(nèi)部)類把夸、方法或字段的類中引用這些類、方法或字段铭污。在類的外部或者對于子類而言俱萍,它們是不可見的饶氏。所有類成員的默認(rèn)訪問范圍都是package訪問柳爽,也就是說绽快,除非存在特定的訪問控制修飾符,否則刁绒,可以從同一個(gè)包中的任何類訪問類成員。

2)protected受保護(hù)的

protected關(guān)鍵字是可以應(yīng)用于類烤黍、方法或字段(在類中聲明的變量)的訪問控制修飾符知市∩得耍可以在聲明protected類、方法或字段的類嫂丙、同一個(gè)包中的其他任何類以及任何子類(無論子類是在哪個(gè)包中聲明的)中引用這些類娘赴、方法或字段。所有類成員的默認(rèn)訪問范圍都是package訪問跟啤,也就是說诽表,除非存在特定的訪問控制修飾符,否則隅肥,可以從同一個(gè)包中的任何類訪問類成員竿奏。

3)public公共的

public關(guān)鍵字是可以應(yīng)用于類、方法或字段(在類中聲明的變量)的訪問控制修飾符腥放》盒ィ可能只會(huì)在其他任何類或包中引用public類、方法或字段秃症。所有類成員的默認(rèn)訪問范圍都是package訪問候址,也就是說,除非存在特定的訪問控制修飾符种柑,否則岗仑,可以從同一個(gè)包中的任何類訪問類成員。

2.類聚请、方法和變量修飾符

1)abstract聲明抽象

abstract關(guān)鍵字可以修改類或方法赔蒲。abstract類可以擴(kuò)展(增加子類),但不能直接實(shí)例化良漱。abstract方法不在聲明它的類中實(shí)現(xiàn)舞虱,但必須在某個(gè)子類中重寫。采用abstract方法的類本來就是抽象類母市,并且必須聲明為abstract矾兜。

2)class類

class關(guān)鍵字用來聲明新的Java類,該類是相關(guān)變量和/或方法的集合患久。類是面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的基本構(gòu)造單位椅寺。類通常代表某種實(shí)際實(shí)體,如幾何形狀或人蒋失。類是對象的模板返帕。每個(gè)對象都是類的一個(gè)實(shí)例。要使用類篙挽,通常使用new操作符將類的對象實(shí)例化荆萤,然后調(diào)用類的方法來訪問類的功能。

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

extends關(guān)鍵字用在class或interface聲明中链韭,用于指示所聲明的類或接口是其名稱后跟有extends關(guān)鍵字的類或接口的子類偏竟。子類繼承父類的所有public和protected變量和方法。子類可以重寫父類的任何非final方法敞峭。一個(gè)類只能擴(kuò)展一個(gè)其他類踊谋。

4)final最終、不可改變

final關(guān)鍵字可以應(yīng)用于類旋讹,以指示不能擴(kuò)展該類(不能有子類)殖蚕。final關(guān)鍵字可以應(yīng)用于方法,以指示在子類中不能重寫此方法沉迹。一個(gè)類不能同時(shí)是abstract又是final睦疫。abstract意味著必須擴(kuò)展類,final意味著不能擴(kuò)展類胚股。一個(gè)方法不能同時(shí)是abstract又是final笼痛。abstract意味著必須重寫方法,final意味著不能重寫方法琅拌。

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

implements關(guān)鍵字在class聲明中使用缨伊,以指示所聲明的類提供了在implements關(guān)鍵字后面的名稱所指定的接口中所聲明的所有方法的實(shí)現(xiàn)。類必須提供在接口中所聲明的所有方法的實(shí)現(xiàn)进宝。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口刻坊。

6)interface接口

interface關(guān)鍵字用來聲明新的Java接口,接口是方法的集合党晋。

接口是Java語言的一項(xiàng)強(qiáng)大功能谭胚。任何類都可聲明它實(shí)現(xiàn)一個(gè)或多個(gè)接口,這意味著它實(shí)現(xiàn)了在這些接口中所定義的所有方法未玻。

實(shí)現(xiàn)了接口的任何類都必須提供在該接口中的所有方法的實(shí)現(xiàn)灾而。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。

7)native本地

native關(guān)鍵字可以應(yīng)用于方法扳剿,以指示該方法是用Java以外的語言實(shí)現(xiàn)的旁趟。

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

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

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

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

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

9)static靜態(tài)

static關(guān)鍵字可以應(yīng)用于內(nèi)部類(在另一個(gè)類中定義的類)耕餐、方法或字段(類的成員變量)。通常辟狈,static關(guān)鍵字意味著應(yīng)用它的實(shí)體在聲明該實(shí)體的類的任何特定實(shí)例外部可用肠缔。static(內(nèi)部)類可以被其他類實(shí)例化和引用(即使它是頂級類)。在上面的示例中,另一個(gè)類中的代碼可以實(shí)例化MyStaticClass類桩砰,方法是用包含它的類名來限定其名稱拓春,如MyClass.MyStaticClass释簿。static字段(類的成員變量)在類的所有實(shí)例中只存在一次亚隅。

可以從類的外部調(diào)用static方法,而不用首先實(shí)例化該類庶溶。這樣的引用始終包括類名作為方法調(diào)用的限定符煮纵。

模式:public final static varName =

;通常用于聲明可以在類的外部使用的類常量。在引用這樣的類常量時(shí)需要用類名加以限定偏螺。在上面的示例中行疏,另一個(gè)類可以用MyClass.MAX_OBJECTS形式來引用MAX_OBJECTS常量。

10) strictfp嚴(yán)格,精準(zhǔn)

strictfp的意思是FP-strict套像,也就是說精確浮點(diǎn)的意思酿联。在Java虛擬機(jī)進(jìn)行浮點(diǎn)運(yùn)算時(shí),如果沒有指定strictfp關(guān)鍵字時(shí)夺巩,Java的編譯器以及運(yùn)行環(huán)境在對浮點(diǎn)運(yùn)算的表達(dá)式是采取一種近似于我行我素的行為來完成這些操作贞让,以致于得到的結(jié)果往往無法令人滿意。而一旦使用了strictfp來聲明一個(gè)類柳譬、接口或者方法時(shí)喳张,那么所聲明的范圍內(nèi)Java的編譯器以及運(yùn)行環(huán)境會(huì)完全依照浮點(diǎn)規(guī)范IEEE-754來執(zhí)行。因此如果想讓浮點(diǎn)運(yùn)算更加精確美澳,而且不會(huì)因?yàn)椴煌挠布脚_(tái)所執(zhí)行的結(jié)果不一致的話销部,那就請用關(guān)鍵字strictfp≈聘可以將一個(gè)類舅桩、接口以及方法聲明為strictfp,但是不允許對接口中的方法以及構(gòu)造函數(shù)聲明strictfp關(guān)鍵字

11) synchronized線程雨膨、同步

synchronized關(guān)鍵字可以應(yīng)用于方法或語句塊擂涛,并為一次只應(yīng)由一個(gè)線程執(zhí)行的關(guān)鍵代碼段提供保護(hù)。synchronized關(guān)鍵字可防止代碼的關(guān)鍵代碼段一次被多個(gè)線程執(zhí)行哥放。如果應(yīng)用于靜態(tài)方法歼指,那么,當(dāng)該方法一次由一個(gè)線程執(zhí)行時(shí)甥雕,整個(gè)類將被鎖定踩身。如果應(yīng)用于實(shí)例方法,那么社露,當(dāng)該方法一次由一個(gè)線程訪問時(shí)挟阻,該實(shí)例將被鎖定。

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

12) transient短暫

transient關(guān)鍵字可以應(yīng)用于類的成員變量,以便指出該成員變量不應(yīng)在包含它的類實(shí)例已序列化時(shí)被序列化坷备。

當(dāng)一個(gè)對象被串行化的時(shí)候熄浓,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進(jìn)去的省撑。

Java的serialization提供了一種持久化對象實(shí)例的機(jī)制赌蔑。當(dāng)持久化對象時(shí),可能有一個(gè)特殊的對象數(shù)據(jù)成員竟秫,我們不想用serialization機(jī)制來保存它娃惯。為了在一個(gè)特定對象的一個(gè)域上關(guān)閉serialization,可以在這個(gè)域前加上關(guān)鍵字transient肥败。

transient是Java語言的關(guān)鍵字趾浅,用來表示一個(gè)域不是該對象串行化的一部分。當(dāng)一個(gè)對象被串行化的時(shí)候馒稍,transient型變量的值不包括在串行化的表示中皿哨,然而非transient型的變量是被包括進(jìn)去的。

13) volatile易失

volatile關(guān)鍵字用于表示可以被多個(gè)線程異步修改的成員變量筷黔。

注意:volatile關(guān)鍵字在許多Java虛擬機(jī)中都沒有實(shí)現(xiàn)往史。volatile的目標(biāo)用途是為了確保所有線程所看到的指定變量的值都是相同的。

Java語言中的volatile變量可以被看作是一種“程度較輕的synchronized”佛舱;與synchronized塊相比椎例,volatile變量所需的編碼較少,并且運(yùn)行時(shí)開銷也較少请祖,但是它所能實(shí)現(xiàn)的功能也僅是synchronized的一部分订歪。

最后,如果想有一群“臭味相投”的朋友來一起交流學(xué)習(xí)的話肆捕,歡迎大家搜索群460570824刷晋,讓我們共同進(jìn)步!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末慎陵,一起剝皮案震驚了整個(gè)濱河市眼虱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌席纽,老刑警劉巖捏悬,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異润梯,居然都是意外死亡过牙,警方通過查閱死者的電腦和手機(jī)甥厦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寇钉,“玉大人刀疙,你說我怎么就攤上這事∩ǔ” “怎么了谦秧?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長镊辕。 經(jīng)常有香客問我油够,道長蚁袭,這世上最難降的妖魔是什么征懈? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮揩悄,結(jié)果婚禮上卖哎,老公的妹妹穿的比我還像新娘。我一直安慰自己删性,他們只是感情好亏娜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹬挺,像睡著了一般维贺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上巴帮,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天溯泣,我揣著相機(jī)與錄音,去河邊找鬼榕茧。 笑死垃沦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的用押。 我是一名探鬼主播肢簿,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜻拨!你這毒婦竟也來了池充?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤缎讼,失蹤者是張志新(化名)和其女友劉穎收夸,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體休涤,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咱圆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年笛辟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片序苏。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡手幢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出忱详,到底是詐尸還是另有隱情围来,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布匈睁,位于F島的核電站监透,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏航唆。R本人自食惡果不足惜胀蛮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望糯钙。 院中可真熱鬧粪狼,春花似錦、人聲如沸任岸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽享潜。三九已至困鸥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剑按,已是汗流浹背疾就。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吕座,地道東北人虐译。 一個(gè)月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像吴趴,于是被迫代替她去往敵國和親漆诽。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法锣枝,類相關(guān)的語法厢拭,內(nèi)部類的語法,繼承相關(guān)的語法撇叁,異常的語法供鸠,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • Java關(guān)鍵字的大致含義 關(guān)鍵字 含義 表明類或者成員方法具有抽象屬性 abstract 用來進(jìn)行程序調(diào)試 ass...
    殘?jiān)掠昙娂?/span>閱讀 364評論 0 0
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,071評論 0 62
  • 注釋 代碼注釋是架起程序設(shè)計(jì)者與程序閱讀者之間的通信橋梁陨闹,最大限度的提高團(tuán)隊(duì)開發(fā)合作效率楞捂。也是程序代碼可維護(hù)性的重...
    青貊閱讀 298評論 0 0
  • 我們都曾虛度光陰寨闹,也曾享受虛度時(shí)光的狀態(tài)胶坠,世界紛擾,與我何干繁堡。 20多年的生活讓我堅(jiān)定了一些人和事沈善,一直以為我所追...
    最貍的一只閱讀 587評論 5 6