java面試題

feiwu1hao發表於2021-03-01

jdk jre jvm區別?

jdk包含java就開發環境和執行環境
jre java執行環境,包含java虛擬機器和基礎庫
jvm Java虛擬機器,執行位元組碼
jvm是跨平臺的關鍵

==,equal的區別?

== 比較的是值,基本資料型別比較的是數值, 引用型別比較的是指向的地址(值)
equals Object預設比較的是地址,如果比較內容,需要重寫

final

表示不可變,不可繼承,不可重寫
final 修飾基本資料型別,值本身不可變
final修飾引用型別,引用指向不能改變

String StringBuffer StringBuilder區別

String是final型別,產生新的String物件,將指標指向新的String物件

StringBuffer, StringBuilder可修改
前者執行緒安全,後者不安全(效能高)

介面和抽象類

抽象類是同類事物的抽取,介面是系統或不同層之間對接標準

List中ArrayList和LinkedList

ArrayList底層是連續的儲存空間,擁有陣列的特性
在add元素時會檢查剩餘空間並進行1.5倍擴容
非執行緒安全
LinkedList是雙向連結串列,非執行緒安全

synchronized到底做了什麼?

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章