java基礎

根據(jù)以下鏈接來解答的面試問題


http://www.itdecent.cn/p/62311ac9add7

java史上最全的面試題目



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

用過哪些Map類,都有什么區(qū)別,HashMap是線程安全的嗎,并發(fā)下使用的Map是什么,他們內(nèi)部原理分別是什么,比如存儲方式,hashcode,擴容,默認容量等。


JAVA8的ConcurrentHashMap為什么放棄了分段鎖,有什么問題嗎,如果你來設計,你如何設計。

有沒有有順序的Map實現(xiàn)類,如果有,他們是怎么保證有序的。

抽象類和接口的區(qū)別,類可以繼承多個類么,接口可以繼承多個接口么,類可以實現(xiàn)多個接口么。

繼承和聚合的區(qū)別在哪。

IO模型有哪些,講講你理解的nio ,他和bio,aio的區(qū)別是啥,談談reactor模型。反射的原理,反射創(chuàng)建類實例的三種方式是什么。

反射中,Class.forName和ClassLoader區(qū)別 。

描述動態(tài)代理的幾種實現(xiàn)方式,分別說出相應的優(yōu)缺點。

動態(tài)代理與cglib實現(xiàn)的區(qū)別。

為什么CGlib方式可以對接口實現(xiàn)代理。

final的用途。

寫出三種單例模式實現(xiàn) 。

如何在父類中為子類自動完成所有的hashcode和equals實現(xiàn)?這么做有何優(yōu)劣。

請結合OO設計理念,談談訪問修飾符public、private、protected、default在應用設計中的作用。

深拷貝和淺拷貝區(qū)別。數(shù)組和鏈表數(shù)據(jù)結構描述,各自的時間復雜度。

error和exception的區(qū)別,CheckedException,RuntimeException的區(qū)別。

請列出5個運行時異常。

在自己的代碼中,如果創(chuàng)建一個java.lang.String類,這個類是否可以被類加載器加載?為什么。

說一說你對java.lang.Object對象中hashCode和equals方法的理解。在什么場景下需要重新實現(xiàn)這兩個方法。

在jdk1.5中,引入了泛型,泛型的存在是用來解決什么問題。

這樣的a.hashcode() 有什么用,與a.equals(b)有什么關系。


有沒有可能2個不相等的對象有相同的hashcode。Java中的HashSet內(nèi)部是如何工作的。


什么是序列化,怎么序列化,為什么序列化,反序列化會遇到什么問題,如何解決。


java8的新特性。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,063評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,007評論 2 59
  • 單親女孩迪倫在踏上去看望父親的列車上因列車發(fā)生事故而死亡,她以為全車人都喪生了唯獨自己存活下來,抱著巨大的...
    魑魅魍魎魃魈魁_4424閱讀 299評論 12 2
  • 感恩朋友!感恩社會的愛心人士!雖然不曾見面,
    堅強de土豆閱讀 236評論 0 0
  • “回來了?”葉芊坐在沙發(fā)上,看著遲歸的弟弟,吸了口煙。 “姐?”葉唯有些吃驚,“你回來了?” 她沒回答,掐了煙,給...
    仇俞閱讀 435評論 0 1

友情鏈接更多精彩內(nèi)容