面試題
1. 代碼中如何實(shí)現(xiàn)多態(tài)
實(shí)現(xiàn)多態(tài)主要有以下三種方式:
- 接口實(shí)現(xiàn)
- 繼承父類(lèi)重寫(xiě)方法
- 同一類(lèi)中進(jìn)行方法重載
2. switch中能否使用string做參數(shù)
在jdk 1.7之 前,switch只 能支持byte, short, char, int或者其對(duì)應(yīng)的封裝類(lèi)以及Enum類(lèi) 型。從jdk 1.7之 后 switch開(kāi) 始支持String查坪。
3.基本數(shù)據(jù)類(lèi)型有哪些
byte:Java中 最小的數(shù)據(jù)類(lèi)型中姜,在內(nèi)存中占8位(bit)嘉竟, 即1個(gè)字節(jié)彤守,取值范圍‐128~127 历极,默認(rèn)值0
short :短整型毁菱,在內(nèi)存中占16位米死,即2個(gè) 字節(jié),取值范圍‐32768~32717 贮庞,默認(rèn)值0
int: 整型峦筒,用于存儲(chǔ)整數(shù),在內(nèi)在中占32位窗慎,即4個(gè) 字節(jié)物喷,取值范圍‐2147483648~2147483647, 默認(rèn)值0
long: 長(zhǎng)整型遮斥,在內(nèi)存中占64位峦失,即8個(gè) 字節(jié)‐263~263 ‐1,默認(rèn)值0L
float :浮點(diǎn)型术吗,在內(nèi)存中占32位尉辑,即4個(gè) 字節(jié),用于存儲(chǔ)帶小數(shù)點(diǎn)的數(shù)字(與double的 區(qū)別在于float類(lèi) 型有效小數(shù)點(diǎn) 只有6~7位 )较屿,默認(rèn)值0
double :雙精度浮點(diǎn)型隧魄,用于存儲(chǔ)帶有小數(shù)點(diǎn)的數(shù)字卓练,在內(nèi)存中占64位 ,即8個(gè)字節(jié)购啄,默認(rèn)值0
char: 字符型襟企,用于存儲(chǔ)單個(gè)字符,占16位闸溃,即 2個(gè)字節(jié)整吆,取值范圍0~65535 ,默認(rèn)值為空
boolean :布爾類(lèi)型辉川,占1個(gè)字節(jié)表蝙,用于判斷真或假(僅有兩個(gè)值,即true乓旗、 false) 府蛇,默認(rèn)值false
4. 說(shuō)說(shuō)你對(duì)于static關(guān)鍵字的理解
Static可以修飾內(nèi)部類(lèi)、方法屿愚、變量汇跨、代碼塊
Static修 飾的類(lèi)是靜態(tài)內(nèi)部類(lèi)
Static修 飾的方法是靜態(tài)方法,表示該方法屬于當(dāng)前類(lèi)的妆距,而不屬于某個(gè)對(duì)象的穷遂,靜態(tài)方法也不能被重寫(xiě),可以直 接使 用類(lèi)名來(lái)調(diào)用娱据。在static方 法中不能使用this或 者super關(guān) 鍵字蚪黑。
Static修 飾變量是靜態(tài)變量或者叫類(lèi)變量,靜態(tài)變量被所有實(shí)例所共享中剩,不會(huì)依賴(lài)于對(duì)象忌穿。靜態(tài)變量在內(nèi)存中只有一份 拷貝,在JVM加 載類(lèi)的時(shí)候结啼,只為靜態(tài)分配一次內(nèi)存掠剑。
Static 修飾的代碼塊叫靜態(tài)代碼塊,通常用來(lái)做程序優(yōu)化的郊愧。靜態(tài)代碼塊中的代碼在整個(gè)類(lèi)加載的時(shí)候只會(huì)執(zhí)行一 次朴译。 靜態(tài)代碼塊可以有多個(gè),如果有多個(gè)属铁,按照先后順序依次執(zhí)行眠寿。
5. JAVA多態(tài)的實(shí)現(xiàn)原理
A.抽象的來(lái)講,多態(tài)的意思就是同一消息可以根據(jù)發(fā)送對(duì)象的不同而采用多種不同的行為方式红选。(發(fā)送消息就是 函數(shù)調(diào) 用)
b.實(shí)現(xiàn)的原理是動(dòng)態(tài)綁定澜公,程序調(diào)用的方法在運(yùn)行期才動(dòng)態(tài)綁定姆另,追溯源碼可以發(fā)現(xiàn)喇肋,JVM 通過(guò)參數(shù)的自動(dòng)轉(zhuǎn)型來(lái)找到 合適的辦法
6. 內(nèi)部類(lèi)與外部類(lèi)的調(diào)用
a) 內(nèi)部類(lèi)可以直接調(diào)用外部類(lèi)包括private 的成員變量坟乾,使用外部類(lèi)引用的this.關(guān) 鍵字調(diào)用即可 b) 而外部類(lèi)調(diào)用內(nèi)部類(lèi)需要建立內(nèi)部類(lèi)對(duì)象
7. 什么是拆裝箱
拆箱:把包裝類(lèi)型轉(zhuǎn)成基本數(shù)據(jù)類(lèi)型
裝箱:把基本數(shù)據(jù)類(lèi)型轉(zhuǎn)成包裝類(lèi)型
8. 程序的結(jié)構(gòu)有那些
順序結(jié)構(gòu)
選擇結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
9.Object類(lèi)常用方法有那些
Equals Hashcode toString wait notify clone getClass
10. 實(shí)例化數(shù)組后,能不能改變數(shù)組長(zhǎng)度呢
不能蝶防,數(shù)組一旦實(shí)例化甚侣,它的長(zhǎng)度就是固定的
11. 抽象類(lèi)必須要有抽象方法嗎
不是必須。抽象類(lèi)可以沒(méi)有抽象方法