Java常見面試題

2021-08-21 17:33:48 字數 510 閱讀 2689

hashmap如何實現的?

首先hashmap內部是由陣列+單向鍊錶結構組成,其中jdk1.8之後新增了紅黑樹進行優化處理。

它是執行緒不安全的(如要執行緒安全的map,可用concurrenthashmap(分段鎖處理)),允許key和value為空。

預設大小:16;

負載因子:0.75;

當儲存數量到達16*0.75時進行擴容,擴容到原先的2倍;

put

根據key的hash值找到對應的陣列位置,然後通過迴圈檢視該列表下是否存在該值,如果存在直接替換進行返回資料。如果不存在,將直接新增到該鍊錶的表頭。(插入第乙個元素時,進行初始化,計算該hashmap中陣列的大小。該大小必須為2的n次方)

get

根據key的hash值進行查詢到對應的陣列位置,然後通過遍歷其下鍊錶的值進行對比,通過==和equals進行對比。直到找到相同的key。

純手工,實時更新!

Java常見面試題 JVM

1.方法區 method area 方法區存放了要載入的類的資訊 如類名 修飾符等 靜態變數 建構函式 final定義的常量 類中的字段和方法等資訊。方法區是全域性共享的,在一定條件下也會被gc。當方法區超過它允許的大小時,就會丟擲outofmemory permgen space異常。在hotsp...

常見面試題

1.get和post的區別 1 本質區別 get是向伺服器請求資料,post是向伺服器傳送資料。2 伺服器獲取值的方式 get方式提交的資料,伺服器端使用request.querystring獲取變數的值。post方式提交的資料,伺服器端使用request.form獲取資料。3 安全性 get安全效...

常見面試題

1 一行 實現1 100之和 lst i for i in range 1,101 print sum lst 2 如何在乙個函式內部修改全域性變數?在函式內部新增 global 變數名 這樣就可以在本地作用域定義全域性作用域了 name 大明 def eat name1 global name n...