根據(jù)以下鏈接來解答的面試問題
http://www.itdecent.cn/p/62311ac9add7
java基礎
JAVA中的幾種基本數(shù)據(jù)類型是什么,各自占用多少字節(jié)。
參考鏈接:
bit --位:計算機中二進制的一個位數(shù)
byte --字節(jié): 計算機存儲容量的基本單位,一個字節(jié)由8個二進制數(shù)組成,在計算機內(nèi)部,一個字節(jié)可以表示一個數(shù)據(jù)也可以表示一個英文字母,兩個字節(jié)表示一個漢字
1Byte=8bit?
1KB=1024Byte(字節(jié))=8*1024bit
1MB=1024KB ? ?????1GB=1024MB????????1TB=1024GB
java基本數(shù)據(jù)類型
int? ? 32bit? ? 4byte
short? ? 16bit? ? 2byte
long? ? 64bit? ? 8byte
byte ? ??8bit? ? 1byte
char ? ??16bit? ? 2byte
float?????32bit? ? 4byte
double ????64bit
boolean? ? 1bit
String類能被繼承嗎,為什么。
不可以
因為String類有final修飾符修飾,final修飾的類不能被繼承,實現(xiàn)細節(jié)不允許改變
關于final:深入理解final關鍵字
當final變量是基本數(shù)據(jù)類型以及String類型時,如果在編譯期間能知道它的確切值,則編譯器會把它當做編譯期常量使用
String,Stringbuffer,StringBuilder的區(qū)別。
三者區(qū)別:
String被final修飾,無法被繼承,確認以后無法改變,如果+改變是相當于新建一個新的String對象
StringBuffer線程安全,被synchronized關鍵字修飾,
StringBuilder相較于Buffer線程不安全,效率高10%~15~左右
ArrayList和LinkedList有什么區(qū)別。參考鏈接?
linkdelist在從斷點增加和刪除更快,更方便,在數(shù)據(jù)多的時候,ArrayList的索引和查找刪除插入更快速。
ArrayList和LinkedList在性能上各有優(yōu)缺點,都有各自所適用的地方,總的說來可以描述如下:?
1.對ArrayList和LinkedList而言,在列表末尾增加一個元素所花的開銷都是固定的。對ArrayList而言,主要是在內(nèi)部數(shù)組中增加一項,指向所添加的元素,偶爾可能會導致對數(shù)組重新進行分配;而對LinkedList而言,這個開銷是統(tǒng)一的,分配一個內(nèi)部Entry對象。
2.在ArrayList的中間插入或刪除一個元素意味著這個列表中剩余的元素都會被移動;而在LinkedList的中間插入或刪除一個元素的開銷是固定的。
3.LinkedList不支持高效的隨機元素訪問。
4.ArrayList的空間浪費主要體現(xiàn)在在list列表的結尾預留一定的容量空間,而LinkedList的空間花費則體現(xiàn)在它的每一個元素都需要消耗相當?shù)目臻g
鏈表和數(shù)組的區(qū)別。? ? 參考鏈接
時間復雜度的計算:計算方式?
講講類的實例化順序,比如父類靜態(tài)數(shù)據(jù),構造函數(shù),字段,子類靜態(tài)數(shù)據(jù),構造函數(shù),字段,當new的時候,他們的執(zhí)行順序。參考鏈接
執(zhí)行順序:
父類靜態(tài)代變量、父類靜態(tài)代碼塊、子類靜態(tài)變量、子類靜態(tài)代碼塊、父類非靜態(tài)變量(父類實例成員變量)、父類構造函數(shù)、子類非靜態(tài)變量(子類實例成員變量)、子類構造函數(shù)。?
java中int和Integer的區(qū)別?答案鏈接
最關鍵的是Integer直接聲明時,
在-128-127之間是直接從常量池中取,超過范圍會去新建對象,從堆空間中新建
IInteger a = 127 ??
Integer b = 127
a==b // true
Integer a1 = 128;
Integer b2 = 128;
a2==b2 //false