免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
java常用的關(guān)鍵字

1、final關(guān)鍵字

final關(guān)鍵字可用于修飾類、方法以及變量。

修飾類:該類不能被繼承,該類的所有方法和成員都被隱式地指定為final。

修飾方法:鎖定方法,任何繼承類都不能修改他,所有的private方法都被隱式地指定為final方法。

修飾變量:若修飾的變量為基本數(shù)據(jù)類型,該變量值被賦值后不可改變;若修飾的變量為引用類型的變量,該變量被初始化后不可再被定義指向另一個(gè)對(duì)象,但指向的對(duì)象的內(nèi)容是可變的。

2、static變量

“全局”或者“靜態(tài)”的意思,給類使用而不是給對(duì)象使用。

被static修飾的方法或變量,無須依賴對(duì)象實(shí)例去訪問,只要類被加載了就可以通過類名直接去訪問。原因:Java程序創(chuàng)建時(shí),在類首次被加載時(shí)會(huì)優(yōu)先執(zhí)行static變量、方法或代碼塊,并為其分配固定的內(nèi)存區(qū)域,JVM可以直接訪問到他們,而不需要依賴某個(gè)特定的實(shí)例變量,并被類的所有實(shí)例共享。

修飾變量:靜態(tài)變量被所有的對(duì)象所共享,在內(nèi)存中只有一副本,當(dāng)且僅當(dāng)類初次加載時(shí)被初始化。

修飾方法:靜態(tài)方法不依賴于任何對(duì)象就可以被訪問,直接類名.方法名可以直接訪問。因此,靜態(tài)方法中不能訪問非靜態(tài)方法或非靜態(tài)變量。工具類?

修飾代碼塊:同理,僅執(zhí)行一次,提高代碼效率。

注:static作用于成員變量用來表示只保存一份副本,而final的作用是用來保證變量不可變。

3、public/private/protected關(guān)鍵字

public修飾符:任何類都可以訪問

private修飾符:訪問權(quán)限僅限于類內(nèi)部

protected修飾符:類及其子類或同一個(gè)包下的類可以訪問

4、finally關(guān)鍵字

finally總是會(huì)被執(zhí)行,正常在try語句后,拋異常在catch語句后,除非前序語句中有System.exit(0)。

finally中return會(huì)修改try或catch中return的變量值嗎?

返回基本類型是值,返回引用類型是指向某個(gè)對(duì)象的地址;基礎(chǔ)類型被分配在棧中,對(duì)象分配在堆中。如果返回的是基本類型,直接復(fù)制一個(gè)變量返回,finally塊中的代碼不會(huì)影響到返回結(jié)果;若返回值是引用類型,finally語句塊可以修改其指向?qū)ο蟮闹怠?/p>

5、throw/throws關(guān)鍵字

throw 函數(shù)體,用于語句拋出異常,一般會(huì)用于程序出現(xiàn)某種邏輯時(shí)程序員主動(dòng)拋出某種特定類型的異常。

throws 函數(shù)頭,用于方法可能拋出異常的申明,聲明方法時(shí)跟上throws,交給上層處理拋出的異常。

6、transient關(guān)鍵字

一個(gè)對(duì)象實(shí)現(xiàn)了Serializable接口,該對(duì)象就會(huì)序列化。若是某些屬性不希望被序列化(如密碼),可以在該屬性前加transient修飾。如此,該字段的生命周期僅存在于調(diào)用者的內(nèi)存中而不會(huì)被寫到磁盤中持久化。

靜態(tài)變量不管是否被transient修飾都不會(huì)被序列化。

在Java中,對(duì)象的序列化可以通過實(shí)現(xiàn)兩種接口來實(shí)現(xiàn),若實(shí)現(xiàn)的是Serializable接口,則所有的序列化將會(huì)自動(dòng)進(jìn)行,若實(shí)現(xiàn)的是Externalizable接口,則沒有任何東西可以自動(dòng)序列化,需要在writeExternal方法中進(jìn)行手工指定所要序列化的變量,這與是否被transient修飾無關(guān)。

7、synchronized關(guān)鍵字

synchronized 同步鎖,使用鎖的機(jī)制實(shí)現(xiàn)同步。

修飾一個(gè)代碼塊,同步代碼塊,作用對(duì)象是調(diào)用這個(gè)代碼塊的對(duì)象,指定對(duì)象加鎖。

修飾一個(gè)方法,同步方法,作用對(duì)象是調(diào)用這個(gè)方法的對(duì)象,當(dāng)前實(shí)例加鎖。

修飾一個(gè)靜態(tài)方法,作用對(duì)象是這個(gè)類的所有對(duì)象,當(dāng)前類對(duì)象加鎖。

修飾一個(gè)類,作用對(duì)象是這個(gè)類的所有對(duì)象,當(dāng)前類對(duì)象加鎖。

兩個(gè)并發(fā)進(jìn)程訪問同一個(gè)對(duì)象object中的synchronized(this)同步代碼時(shí),一個(gè)時(shí)間內(nèi)只有一個(gè)線程得到執(zhí)行,另一個(gè)線程必須等到該線程執(zhí)行完該代碼塊才可以執(zhí)行。

當(dāng)一個(gè)線程訪問一個(gè)對(duì)象object中的synchronized(this)同步代碼時(shí),另一個(gè)線程可以訪問該object的非同步代碼塊。

當(dāng)一個(gè)線程訪問一個(gè)對(duì)象object中的synchronized(this)同步代碼時(shí),其他線程對(duì)該object對(duì)象中的其他同步代碼塊的訪問也被阻塞。 對(duì)象鎖

注:使用該關(guān)鍵字,需要注意是否是對(duì)同一個(gè)對(duì)象加鎖,對(duì)于靜態(tài)方法或者是類,該類的所有對(duì)象同一把鎖。

8、volatile關(guān)鍵字

修飾變量

保證不同線程對(duì)于這個(gè)變量進(jìn)行操作時(shí)的可見性,即一個(gè)線程修改了該變量的值,該新值對(duì)于其他線程是立即可見的。如果是寫操作,會(huì)導(dǎo)致其他CPU中對(duì)應(yīng)的緩存行無效,需要到主存中讀取該變量的值。

禁止進(jìn)行指令重排序。

加入volatile關(guān)鍵字會(huì)多一個(gè)lock前綴指令,相當(dāng)于一個(gè)內(nèi)存屏障,可以保證指令重排序不會(huì)穿過屏障。

強(qiáng)制將對(duì)緩存的修改操作立即寫入主存。

來源:https://www.icode9.com/content-1-258551.html
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java關(guān)鍵字transient和volatile
幾個(gè)比較難理解的JAVA關(guān)鍵字總結(jié)
Java面試參考指南(二)
java靜態(tài)方法、非靜態(tài)代碼塊{}、靜態(tài)代碼塊static{}(轉(zhuǎn))
java中static關(guān)鍵字的作用是什么
[轉(zhuǎn)]構(gòu)造函數(shù)為什么不能被abstract/static/final/native/stricftp/synchronized修飾 及 一些關(guān)鍵字的用法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服