面試題
1. 代碼中如何實現(xiàn)多態(tài)
實現(xiàn)多態(tài)主要有以下三種方式:
- 接口實現(xiàn)
- 繼承父類重寫方法
- 同一類中進行方法重載
2. switch中能否使用string做參數(shù)
在jdk 1.7之 前,switch只 能支持byte, short, char, int或者其對應的封裝類以及Enum類 型。從jdk 1.7之 后 switch開 始支持String。
3.基本數(shù)據(jù)類型有哪些
byte:Java中 最小的數(shù)據(jù)類型,在內(nèi)存中占8位(bit), 即1個字節(jié),取值范圍‐128~127 ,默認值0
short :短整型,在內(nèi)存中占16位,即2個 字節(jié),取值范圍‐32768~32717 ,默認值0
int: 整型,用于存儲整數(shù),在內(nèi)在中占32位,即4個 字節(jié),取值范圍‐2147483648~2147483647, 默認值0
long: 長整型,在內(nèi)存中占64位,即8個 字節(jié)‐263~263 ‐1,默認值0L
float :浮點型,在內(nèi)存中占32位,即4個 字節(jié),用于存儲帶小數(shù)點的數(shù)字(與double的 區(qū)別在于float類 型有效小數(shù)點 只有6~7位 ),默認值0
double :雙精度浮點型,用于存儲帶有小數(shù)點的數(shù)字,在內(nèi)存中占64位 ,即8個字節(jié),默認值0
char: 字符型,用于存儲單個字符,占16位,即 2個字節(jié),取值范圍0~65535 ,默認值為空
boolean :布爾類型,占1個字節(jié),用于判斷真或假(僅有兩個值,即true、 false) ,默認值false
4. 說說你對于static關鍵字的理解
Static可以修飾內(nèi)部類、方法、變量、代碼塊
Static修 飾的類是靜態(tài)內(nèi)部類
Static修 飾的方法是靜態(tài)方法,表示該方法屬于當前類的,而不屬于某個對象的,靜態(tài)方法也不能被重寫,可以直 接使 用類名來調(diào)用。在static方 法中不能使用this或 者super關 鍵字。
Static修 飾變量是靜態(tài)變量或者叫類變量,靜態(tài)變量被所有實例所共享,不會依賴于對象。靜態(tài)變量在內(nèi)存中只有一份 拷貝,在JVM加 載類的時候,只為靜態(tài)分配一次內(nèi)存。
Static 修飾的代碼塊叫靜態(tài)代碼塊,通常用來做程序優(yōu)化的。靜態(tài)代碼塊中的代碼在整個類加載的時候只會執(zhí)行一 次。 靜態(tài)代碼塊可以有多個,如果有多個,按照先后順序依次執(zhí)行。
5. JAVA多態(tài)的實現(xiàn)原理
A.抽象的來講,多態(tài)的意思就是同一消息可以根據(jù)發(fā)送對象的不同而采用多種不同的行為方式。(發(fā)送消息就是 函數(shù)調(diào) 用)
b.實現(xiàn)的原理是動態(tài)綁定,程序調(diào)用的方法在運行期才動態(tài)綁定,追溯源碼可以發(fā)現(xiàn),JVM 通過參數(shù)的自動轉型來找到 合適的辦法
6. 內(nèi)部類與外部類的調(diào)用
a) 內(nèi)部類可以直接調(diào)用外部類包括private 的成員變量,使用外部類引用的this.關 鍵字調(diào)用即可 b) 而外部類調(diào)用內(nèi)部類需要建立內(nèi)部類對象
7. 什么是拆裝箱
拆箱:把包裝類型轉成基本數(shù)據(jù)類型
裝箱:把基本數(shù)據(jù)類型轉成包裝類型
8. 程序的結構有那些
順序結構
選擇結構
循環(huán)結構
9.Object類常用方法有那些
Equals Hashcode toString wait notify clone getClass
10. 實例化數(shù)組后,能不能改變數(shù)組長度呢
不能,數(shù)組一旦實例化,它的長度就是固定的
11. 抽象類必須要有抽象方法嗎
不是必須。抽象類可以沒有抽象方法
流程圖



