發布時間:2024-01-24閱讀(13)

進去后首先是讓先介紹一下自己以及項目. 然后讓我畫一下項目的架構圖以及目錄結構, 問為什么這么設計.
再下來就問一些比較基礎的像MVC的執行流程是怎么樣的, 無非就是dispatherServlet 和解析器之間的傳遞么
再下來直接問我 jvm的類加載過程以及 新生代Eden區 和ServivorFrom 以及ServivorTO區的問題, 例如: 什么時候MinorGC會觸發, 講一下這塊的流程. 然后是什么時候新生代的數據會轉移到老年代.
再接下來就問我一些算法. 我當時就懵了 , 兄弟我面的職位沒那么高級啊. 反正這塊沒答上來.
然后問我多線程這塊,先是問線程池是通過什么創建的 Executors 然后問創建線程池的4種方式以及各自的區別包括問了下NewFix線程池的參數含義,然后出了幾個題
1: Syncronized
Class a {
Syncronized void aaa (){}
Syncronized static void bbb (){}
}
通過兩個線程,一個調用aaa方法一個調用bbb方法,問線程調用了bbb方法后 aaa方法還能進入嗎.
2: 有字符串123456789這樣的, 有兩個線程同時執行,實現一下一次循環遍歷出123456789 例如 t1線程結果是1 t2線程結果是2 再是t1 = 3這樣的.
3: 這個就不是線程題了, 一個字符串 abcddcba 寫一個代碼證明 這個字符串是對稱的.
數據庫這塊問題: sql優化 講一下b tree b-tree 在mysql中的區別,數據庫存儲引擎,包括存儲的文件結構,sql執行流程,本地事務如何執行的等等,反正這塊問的很細. 這個應該是我吹的最完美的了
spring的話問了MVC的執行流程 也就是->dispatherServlet 問了mybatis的一些底層
IO這塊沒有問到.
dubbo沒有問, 就直接問的你們的分布式事務是怎么處理的.....
最后,看了下我簡歷,讓我回去了, 后面知道是 我以往的項目都簡單, 覺得不能勝任吧. 給我氣死了都, 面了三個多小時......
下面這些就是我整理的一些面試題1.集合ArrayList 基于數組實現 通過數組copy擴容 特點:讀取效率高
LinkedList 基于node實現鏈式鏈接 node中記錄當前的值和前后node節點 特點:插入刪除效率高
Vector 線程安全,強同步的arraylist
Stack 棧 對Vector功能性的封裝 先進后出
Queue 隊列 基于數組實現 先進先出
hashmap 基于數組 鏈式結構實現 加載因子:0.75 閥值=數組容量*加載因子 如果容量超過閥值,自動擴容2倍
1.7和1.8的區別 (紅黑樹)
HashTable 線程安全的hashmap 不接受null值
LinkedHashMap HashMap的子類,記錄順序的hashmap,其中的entry記錄了上一節點和下一節點,雙向鏈式結構
HashSet 基于hashmap實現的不可重復的集合
LinkedHashSet HashSet的子類,記錄順序的hashset,同樣是雙向鏈表
juc中的常用并發工具如ConcurrentHashMap(支持并發的hashmap)等.
2.jvm內存分配 1內存如何分配
垃圾回收 1什么樣的對象會回收 2什么時候回收 3各代回收算法 4各垃圾回收器區別
jvm優化 1常用參數 堆大小Xmx Xms 永久帶大小-XX:permGen 老年代年輕帶比例 對象年齡參數 垃圾回收器選擇參數等
類加載機制 反射
jdk常用工具 jstack jstat jmap等(會問處理過什么問題,例如cpu負載高問題查找)
3.多線程線程基礎 1如何實現線程創建 2線程各種狀態 3線程中的常用方法(例如sleep和wait的區別)
線程池 Executor框架 常用線程池fixThreadPool,singleThreadPool,cacheThreadPool的實現原理和區別 schedulerThreadPool延遲線程池
實現線程池的工具 阻塞隊列blockingqueue,沒容量的隊列syncronisedqueue,延遲隊列delayqueue等
說說java中的鎖
4.mysql索引類型 如何建索引 如何使用索引 索引的數據結構hash,btree,b tree
sql優化 explain
主備同步原理:binlog
5.緩存memcache,redis區別,使用場景
一般深入問memcache的不多 主要問redis
1.redis支持的數據結構
2.redis特性:如串行,原子性
3.redis常用命令
4.redis使用場景
6.消息1.activemq,rabbitmq,rocketmq,kafka這些消息使用過哪些?又什么區別?
2.這些mq的原理.
3.mq使用場景.
7.io,nio問的不多,簡單了解一下就行
8.搜索lucence,solr,es使用過哪些?說說原理.
9.數據結構及算法1.算法:查找算法 排序算法
2.數據結構:各種樹(二叉樹,搜索樹,平衡樹等)
10.常用設計模式1.單例 7種寫法
2.工廠
3.動態代理
4.責任鏈模式
5.裝飾器模式
6.適配器模式
11.網絡通信協議1.網絡協議5層
2.http和https區別
3.tcp,udp 三次握手,四次揮手
4.http中包含什么
5.是否用過抓包工具
12.常用框架:spring,dubbo說說ioc和aop的原理(ioc bean工廠 aop 動態代理實現 2中方式 實現接口采用Proxy和InvocationHandler 未實現接口通過cglib實現)
說說dubbo原理 為什么使用dubbo
微服務的優缺點 服務治理是什么
13.linux常用命令.生產環境問題定位. 這個也不會...只會最基礎的命令數據庫這塊的問題:
1.如何保證庫存不超賣的解決方案 這個老師講過,答上來了
2.搶紅包方案設計
3.你之前的哪個項目最熟悉,說說這塊的設計,有什么亮點,如果讓你現在重新設計你會怎么辦 這個就隨便亂吹了~
4.有一個500G大文件,文件中每行是一個數字,寫一個main方法對文件排序
5.有一個6000W行的訂單表,現在有個需求,查詢一個人的前100個訂單,如何設計 這個我真不會了~~ 經驗有限 完全想不到...
架構這塊的問題, 我就是在這邊掛了......
分布式消息隊列:如果讓你實現一個消息隊列,該如何架構設計,說一下思路
分布式搜索引擎:1.es工作過程,如何實現分布式 2.es在數據量很大情況下們如何提高查詢效率
高并發高可用架構解決方案:1.如何限流,降級 2.緩存如何使用,使用不當會有什么后果 3.如何熔斷,熔斷架構又哪些,說說原理
數據庫分庫分表:1.如何分庫分表 2用過哪些分庫分表框架如sharding 3.如何解決分庫分表主鍵沖突的問題
分布式事務:如何實現分布式事務?數據一致性問題如何解決?如何補償
系統吞吐量:怎么提高吞吐量?用過什么壓測工具?之前做過的系統的并發性能如何?tps qps最高多少?
總結這次面完之后, 也也發現了一些地方在講的時候,感覺也沒有理解,又有點講不清的感覺, 準備再閉關再造一下,再準備好好梳理一下, 爭取下次能面的好點,也希望大家能面到一份自己心儀的工作...
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖