Python知識(shí)分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
46道java基礎(chǔ)知識(shí)面試題詳解含答案(值得珍藏)PDF 下載
匿名網(wǎng)友發(fā)布于:2024-01-27 15:45:15
(侵權(quán)舉報(bào))
(假如點(diǎn)擊沒反應(yīng),多刷新兩次就OK!)

46道java基礎(chǔ)知識(shí)面試題詳解含答案(值得珍藏)PDF 下載  圖1

 

 

 

資料內(nèi)容:

 

 

final、finally、finalize區(qū)別
final可以修飾類、變量、方法,修飾類表示該類不能被繼承、修飾方法表示該方法不能被重寫、修飾變量表
示該變量是一個(gè)常量不能被重新賦值。
finally一般作用在try-catch代碼塊中,在處理異常的時(shí)候,通常我們將一定要執(zhí)行的代碼方法finally代碼塊
中,表示不管是否出現(xiàn)異常,該代碼塊都會(huì)執(zhí)行,一般用來存放一些關(guān)閉資源的代碼。
finalize是一個(gè)方法,屬于Object類的一個(gè)方法,而Object類是所有類的父類,該方法一般由垃圾回收器來調(diào)
用,當(dāng)我們調(diào)用System.gc() 方法的時(shí)候,由垃圾回收器調(diào)用finalize(),回收垃圾,一個(gè)對象是否可回收的
最后判斷。
 
this關(guān)鍵字的用法
this是自身的一個(gè)對象,代表對象本身,可以理解為:指向?qū)ο蟊旧淼囊粋€(gè)指針。
this的用法在java中大體可以分為3種:
普通的直接引用,this相當(dāng)于是指向當(dāng)前對象本身。
形參與成員名字重名,用this來區(qū)分。
引用本類的構(gòu)造函數(shù)(應(yīng)該為構(gòu)造函數(shù)中的第一條語句 )。
 
super關(guān)鍵字的用法
super可以理解為是指向自己超(父)類對象的一個(gè)指針,而這個(gè)超類指的是離自己最近的一個(gè)父類。
super也有三種用法:
1.普通的直接引用,與this類似,super相當(dāng)于是指向當(dāng)前對象的父類的引用,這樣就可以用super.xxx來引
用父類的成員。
2.子類中的成員變量或方法與父類中的成員變量或方法同名時(shí),用super進(jìn)行區(qū)分。
3.引用父類構(gòu)造函數(shù)(應(yīng)該為構(gòu)造函數(shù)中的第一條語句 )。
 
this與super的區(qū)別
super: 它引用當(dāng)前對象的直接父類中的成員(用來訪問直接父類中被隱藏的父類中成員數(shù)據(jù)或函數(shù),
基類與派生類中有相同成員定義時(shí)如:super.變量名 super.成員函數(shù)據(jù)名(實(shí)參)
this:它代表當(dāng)前對象名(在程序中易產(chǎn)生二義性之處,應(yīng)使用this來指明當(dāng)前對象;如果函數(shù)的形參
與類中的成員數(shù)據(jù)同名,這時(shí)需用this來指明成員變量名)
super()this()類似,區(qū)別是,super()在子類中調(diào)用父類的構(gòu)造方法,this()在本類內(nèi)調(diào)用本類的其
它構(gòu)造方法。
super()this()均需放在構(gòu)造方法內(nèi)第一行。
盡管可以用this調(diào)用一個(gè)構(gòu)造器,但卻不能調(diào)用兩個(gè)。
thissuper不能同時(shí)出現(xiàn)在一個(gè)構(gòu)造函數(shù)里面,因?yàn)?/span>this必然會(huì)調(diào)用其它的構(gòu)造函數(shù),其它的構(gòu)造函數(shù)
必然也會(huì)有super語句的存在,所以在同一個(gè)構(gòu)造函數(shù)里面有相同的語句,就失去了語句的意義,編譯
器也不會(huì)通過。
this()super()都指的是對象,所以,均不可以在static環(huán)境中使用。包括:static變量,static
法,static語句塊。
從本質(zhì)上講,this是一個(gè)指向本對象的指針, 然而super是一個(gè)Java關(guān)鍵字
 
static存在的主要意義
static的主要意義是在于創(chuàng)建獨(dú)立于具體對象的域變量或者方法。以致于即使沒有創(chuàng)建對象,也能使用
屬性和調(diào)用方法!
static關(guān)鍵字還有一個(gè)比較關(guān)鍵的作用就是 用來形成靜態(tài)代碼塊以優(yōu)化程序性能。static塊可以置于類中
的任何地方,類中可以有多個(gè)static塊。在類初次被加載的時(shí)候,會(huì)按照static塊的順序來執(zhí)行每個(gè)
static塊,并且只會(huì)執(zhí)行一次。
為什么說static塊可以用來優(yōu)化程序性能,是因?yàn)樗奶匦?/span>:只會(huì)在類加載的時(shí)候執(zhí)行一次。因此,很多
時(shí)候會(huì)將一些只需要進(jìn)行一次的初始化操作都放在static代碼塊中進(jìn)行。
 
static的獨(dú)特之處
1、被static修飾的變量或者方法是獨(dú)立于該類的任何對象,也就是說,這些變量和方法不屬于任何一個(gè)實(shí)例
對象,而是被類的實(shí)例對象所共享。
2、在該類被第一次加載的時(shí)候,就會(huì)去加載被static修飾的部分,而且只在類第一次使用時(shí)加載并進(jìn)行初始
化,注意這是第一次用就要初始化,后面根據(jù)需要是可以再次賦值的。
3、static變量值在類加載的時(shí)候分配空間,以后創(chuàng)建類對象的時(shí)候不會(huì)重新分配。賦值的話,是可以任意賦
值的!
4、被static修飾的變量或者方法是優(yōu)先于對象存在的,也就是說當(dāng)一個(gè)類加載完畢之后,即便沒有創(chuàng)建對
象,也可以去訪問。