京東一面總結
總共時間持續時間約40分鍾
1.你用過集合類里面哪些是線程安全的,哪些是線程不安全的?分別舉兩個例子?
線程安全:HashTable以及ConcurrentHashMap
非線程安全:ArrayList、HashMap等
2.實現線程安全的集合類都有哪些方法,如果是你要用線程安全的集合類,你會怎么選?為什么?
Collections.synchronizedMap(new HashMap<>())
ConcurrentHashMap,鎖的粒度更細,能實現更好的並發。
3.說一下ConcurrentHaspMap的實現?
1.7分段鎖,每個segment相當於一把鎖,每個segment管理一部分數組的位置;
1.8粒度更細,數組的每個位置相當於一把鎖,基於CAS和synchronized實現,get方法不需要獲取鎖
4.ArrayList容量不夠了,怎么辦?
介紹了一下ArrayList的初始化參數,默認容量是10,擴容是擴1.5倍, newCap=oldCap+oldCap>>1;擴容的過程是先申請一個newCap長度的空數組,再把之前 舊數組的值復制過來;
5.ThreadLocal有了解嗎?介紹一下
Threadlocal為每個線程創建一個變量副本,每個線程操作自己的副本
6.AtomicLong這種原子類的實現知道嗎?
基於循環CAS實現的,介紹了一下CAS
7.要你動手實現一個從Java對象到Json的轉換,你要怎么做?
不會,說了反射,但是面試官也沒說話。
8.微服務的調用主要基於RPC和Rest接口,說一下微服務調用的一個基本過程?
不會,扯了一下實習的微服務流程,然后就。。。下一個
9.MySql數據庫InnoDB存儲引擎支持哪些隔離界別?其中可重復讀底層是怎么實現的?
讀未提交、讀已提交、可重復讀、可串行化
10.MySql中join和union的區別是啥?
Join是表連接(橫向),分為leftjoin/innerjoin/rightjoin/fulljoin;
union是表拼接(合並表格),UNION 內部的 SELECT 語句必須擁有相同數量的列。列也 必須擁有相似的數據類型
UNION 只選取記錄,會選取不同的值;而UNION ALL會列出所有記錄,包括重復的
11.Spring里面創建Bean,在不指定Scope的情況下創建的Bean是單例嗎?
是的
12.Spring里面事務的傳播級別?比如A方法有事務,B方法沒有事務,怎么整?
聽不懂,過
13.Spring框架里面AOP是啥?怎么個用法?
對已有方法進行功能的增強,不需要改變業務代碼,常用於記錄操作日志
14.時間差不多了,你還有什么問題問我?
- 所在的部門及業務;
- 所用的技術棧,以及學習建議;
- 面試安排以及有幾輪?