2019.3.4 今日頭條(後臺開發)
- 自我介紹
- 項目介紹
- Vue的生命週期
- Restful接口的作用
- es底層實現原理
- Web頁面請求過程
- Set底層實現原理
- 二維矩陣順時針輸出
- 買賣股票的最佳時機
- json字符串處理
2019.3.8 華爲(上午)
- 照着簡歷一條一條扒
- 微服務和模塊化的區別
- 爲什麼使用慢開始和擁塞避免
- 爲什麼使用紅黑樹
- 一個二進制文件怎麼執行
- synchronized底層實現
- 查找排序
- ARP地址解析
- 跳錶
- 路由器和交換機的區別
- 路由器的二層轉發和三層轉發
2019.3.8 CVTE(下午)
- 項目相關
- 數據庫的特性
- 數據庫的隔離級別
- 數據庫索引的維護
- B+樹的高度如何維護
- Spring事務傳播
2019.3.9 菜鳥一面
- Spring Cloud一直問到不會
- Spring Cloud裏面是如何做序列化的
- 一致性哈希
- 劍指offer前兩道題
- Java8用過哪些
- HashMap底層實現
- JVM在jdk1.8中的改動
- RabbitMQ如何保證消息按序到達
- Java中的異常
- 微服務異步調用
2019.3.23 頭條一面
- 垃圾回收算法
- B+樹
- HashMap底層實現
- 類加載器
- 36進制加法
- 阻塞隊列是怎麼實現的
2019.3.28 科大訊飛一面
- Spring的bean生命週期
- 爲什麼使用Mybatis
- Spring IOC
- Spring bean的作用域
- Spring bean是不是單例
- 數據庫三大範式
- 數據庫事務特性
- 數據庫隔離級別
2019.3.29 小米(一面)
- 項目介紹
- 單例設計模式
- 適配器模式
- Spring @Scope註解
- Java元註解
- Spring IOC
- Spring MVC執行流程
- Spring InitializingBean接口
- HashMap
- ThreadLocal
- Serializable中的ID有什麼作用
- 數據庫事務
- 數據庫連接池
- 隔離級別
- 最長不重複子串
- 二維矩陣搜索
2019.4.10 蘑菇街一面
- HashMap底層實現,擴容機制,頭插還是尾插,爲什麼?
- Hashtable與HashMap的區別
- ConcurrentHashMap底層實現,1.7和1.8的區別
- ConcurrentHashMap在1.7中使用分段鎖時,如果要對多個段進行修改,那麼鎖一個還是鎖多個
- 線程的run方法和start方法區別
- 線程池原理,核心參數介紹
- 線程池的submit和execute方法區別
- 線程池的四種拒絕策略
- 當線程池中隊列已滿且當前線程數小於最大線程數,那麼來了一個任務後需要創建新線程,那麼這個線程處理的是剛剛來的任務,還是阻塞隊列中的任務。
- 線程池線程數如何配置
- Spring相關知識:AOP、IOC
- Spring bean的生命週期
- 項目中秒殺流程,怎麼實現?
- 庫存預減用的是哪個redis方法
- 如果項目中的redis服務掛掉,如何減輕數據庫的壓力
- 如何避免消息隊列的消費方重複消費消息
- 消息的消費結果如何返回給消息發送方
2019.4.16 度小滿
一面:
-
n個1~100的數字排序
-
圖的存儲方式、什麼是有向無環圖、使用HashMap存儲圖
-
一個指針,刪除鏈表中的某個節點
-
Collection和Collections的區別
-
List、Set和Map的區別
-
HashMap和Hashtable的區別
-
Java中常見的鎖
-
CAP理論、Mysql支持CAP中的哪幾個?
-
redis常見的數據結構,以及底層實現
-
redis set命令
-
redis ttl命令
-
redis爲什麼速度快
-
redis持久化方式
-
TCP/IP四層協議,數據鏈路層、傳輸層、網絡層、應用層中常見的協議
-
TCP和UDP的區別
-
http和https的區別
-
對稱加密和非對稱加密
-
JVM介紹
-
常見的垃圾回收算法和收集器
-
SQL創建表語句、創建索引
-
CSS中id和class的區別
-
百度雲的秒傳功能怎麼實現、百度雲分享鏈接功能怎麼實現?
二面:
-
項目介紹、畫架構圖
-
介紹Eureka註冊中心、設計一個註冊中心(關注點是什麼)
-
微服務的高可用,達集羣
-
常見的負載均衡算法、設計一個負載均衡算法
-
最長不重複子串
2019.4.22 京東一面
-
private、protected、private、default的區別
-
Java基本數據類型
-
Overload和Override的區別
-
Java參數是值傳遞還是引用傳遞
-
接口和抽象類的區別
-
final關鍵字修飾類、方法、變量
-
自動裝箱和拆箱
-
Integer a = 1會創建對象麼?(-128到127的範圍內,不會創建新的對象,而是從IntegerCache中獲取的,大於該範圍的纔會創建對象)
-
volatile關鍵字
-
mysql中索引的好處以及維護代價
-
left join、inner join、right join的區別
-
CPU的組成(CPU內部結構大概可以分爲控制單元、運算單元、存儲單元和時鐘等幾個主要部分)
-
JVM中線程共享的區域和非共享的區域
-
Eden、From、To的比例
-
什麼樣的對象直接進入老年代
-
設計模式中除了單例和工廠還知道哪些?
-
Spring AOP 異常通知
-
Spring IOC原理
-
Java對象序列化
-
Redis直接操作的是什麼?
-
Redis數據類型有哪些?
-
OSI七層、UDP、IP、HTTP分別工作在哪一層
-
設計一個專門用於生成訂單號的微服務(訂單號全局唯一、如何解決訂單微服務高併發的請求)
-
電商項目
2019.4.24 阿里國際事業部一面
-
HTTP和HTTPs的區別
-
http狀態碼
-
Spring AOP原理
-
JDK動態代理和CGLIB動態代理的區別
-
常用的集合類,HashMap底層原理,是否安全,ConcurrentHashMap的底層實現
-
synchronized和lock的區別
-
mysql分組、排序、連接,寫了倆SQL
-
mysql的樂觀鎖和悲觀鎖
-
項目中redis都用在哪些方面
-
ES的底層實現原理,分詞器的原理
-
Java8新特性
-
三道題:
排序
線程按順序輸出
一個原始字符串,根據每個字母出現的次數,按照ASCII碼遞增順序重新調整輸出
(1).原始字符串中僅可能出現“數字”和“字母”
(2).請注意區分字母大小寫
示例:輸入: 223aaabcccdd23 輸出: 23abcd23acd2ac
2019.4.28 阿里國際事業部二面
- 項目介紹
- JWT無狀態登錄,同一用戶在不同地點同時登錄,如何處理
- 緩存穿透
- ES對document的底層操作
- maven出現jar包衝突,怎麼解決
- 死鎖產生的條件
- 歸併排序
2019.4.29 商湯科技
一面:
-
String、StringBuilder、StringBuffer的區別
-
Integer轉字符串的方法
-
HashMap:初試容量、裝載因子、擴容、是否是順序的
-
HashSet底層實現
-
繼承Collection的有哪些:list、set
-
Java元註解,自定義一個註解
-
讀寫鎖
-
synchronized與lock的區別
-
Java8中對鎖的優化
-
Threadlocal
-
mysql中的模糊查詢優化,說了#和$的區別,還有索引不能使用前導模糊查詢
-
mysql發生死鎖了,怎麼解決?
-
Spring IOC容器有哪些
-
Spring中的設計模式,具體講模板方法
-
mybatis底層原理
-
redis基本數據類型
-
手寫lru(面試官想讓我實現一下,我說用LinkedHashMap包裝一下,然後遭到了嘲笑。。。。)
-
寫一個單例,雙重校驗鎖
-
Java8新特性
二面:
-
介紹項目
-
redis底層實現原理,過期機制、內存淘汰策略、緩存雪崩、緩存穿透、主從複製、集羣
-
RabbitMq的消息類型、消息確認機制
-
FDFS原理、集羣怎麼搞
2019.5.5 阿里國際事業部三面
全部問場景題,架構、線程、數據庫
2019.5.7 奇安信(360)
一面
- String類
- final關鍵字
- 包裝類
- 如何在主線程中捕獲子線程中的異常?(用Callable)
- Java虛擬機運行時數據區
- 如何產生棧溢出
- 類加載器、雙親委派模型
- 垃圾回收算法
- 內存分配策略
- Java集合類、HashMap
- TCP三次握手、擁塞控制
- 排序
- 在排序數組中找到所有和爲target的連續子數組
二面
- 項目介紹,架構優化
- 1.8中HashMap的改動
- 爲什麼用ES,ES底層數據結構
- ES刪除文檔的原理
- Mysql存儲引擎
- Mysql索引
- OSI七層模型,分別介紹每一層
- 一個數據庫字段,長度設置爲50和100有什麼區別
- Mybatis的緩存
- Web頁面請求過程
2019.5.9 美團簡歷面
自我介紹
鏈表反轉
根據二叉樹先序和中序序列建立二叉樹
數組和鏈表的區別
Spring AOP
項目介紹