Java程序猿想超神?先回答這些問題。

一、Java基礎

  1. 實例方法和靜態方法有什么不一樣?

  2. Java中的異常有哪幾類?分別怎么使用?

  3. 常用的集合類有哪些?比如List如何排序?

  4. ArrayList和LinkedList內部的實現大致是怎樣的?他們之間的區別和各自適應的場景是什么?

  5. 內存溢出是怎么回事?

  6. ClassLoader有什么用?

  7. ==和equals的區別?

  8. hashCode方法的作用?

  9. Object類中有哪些方法?列舉3個以上。

  10. NIO是什么?適用于何種場景?

  11. HashMap數據結構、擴展策略,Hash沖突攻擊如何防范,如何實現線程安全的HashMap?

  12. JVM內存結構,GC算法,CMS、G1的原理

  13. NIO模型,select/epoll的區別,多路復用的原理

  14. Java中一個字符占多少個字節,擴展再問int, long, double占多少字節

  15. 創建一個類的實例都有哪些辦法?

  16. final/finally/finalize的區別?

  17. LinkingBlockingQueue與ArrayBlockingQueue的區別,他們的適用場景?

  18. Session/Cookie的區別?

  19. String/StringBuffer/StringBuilder的區別,擴展再問他們的實現?

  20. Servlet的生命周期?

  21. 如何用Java分配一段連續的1G的內存空間?需要注意些什么?

  22. Java有自己的內存回收機制,但為什么還存在內存泄露的問題呢?

  23. Java里面用對象作為Key需要注意些什么? 如何實現hashcode?

二、JVM

  1. JVM堆的基本結構。

  2. JVM的垃圾算法有哪幾種?CMS收集算法的流程?

  3. JVM有哪些常用啟動參數可以調整?

  4. 如何查看JVM的內存使用情況?

  5. Java程序是否會內存溢出?

  6. 你常用的JVM配置和調優參數都有哪些?分別什么作用?

  7. Java內存分代模型,GC算法,JVM常見的啟動參數;

  8. CMS算法的過程,CMS回收過程中JVM是否需要暫停(這塊回答較好,也可以只是看畢玄的Java分布式開發或網上文章的學習, 可以結合JVM啟動參數常見配置,jstat等命令,看下動手能力,意愿;以及實際線上問題排查)

  9. 什么情況下會出現OOM(堆內存,永久區,堆外區,方法棧)

  10. Java內存結構(堆結構,新生代[S0/S1/Elden],年老代,持久代)

  11. 常用的GC策略,什么時候會觸發YGC,什么時候觸發FGC

三、數據結構與算法基礎

  1. 說一下幾種常見的排序算法和分別的復雜度。

  2. 什么是跳表?

  3. 如何確認一個鏈表有環?進一步,確認環的位置。

  4. 如何遍歷一棵二叉樹?

  5. 倒排一個LinkedList。

  6. HashSet的實現方式

四、多線程/并發

  1. Java中常見的鎖,互斥鎖,讀寫鎖,信號量

  2. 原子Atomic類,如何保證原子性,CAS硬件指令

  3. volatile,可見性問題的原因,硬件架構,L3 Cache,QPI,樂觀鎖

  4. 如何實現一個線程安全的數據結構

  5. 如何避免死鎖

  6. 如何解決ABA問題

  7. Synchronized關鍵字的作用?

  8. Volatile關鍵字的作用?

  9. Java內存模型是怎樣的?

  10. HashMap在多線程環境下使用需要注意什么?為什么?

  11. Java程序中啟動一個線程是用run()還是start()?

  12. 什么是守護線程?有什么用?

  13. 什么是死鎖?如何避免

  14. 線程和進程的差別是什么?

  15. Java里面的Threadlocal是怎樣實現的?

  16. ConcurrentHashMap的實現原理是?

  17. sleep和wait區別

  18. notify和notifyAll區別

  19. volatile關鍵字的作用

  20. ThreadLocal的作用與實現

  21. 兩個線程如何串行執行

  22. 上下文切換是什么含義

  23. 可以運行時kill掉一個線程嗎?

  24. 什么是條件鎖、讀寫鎖、自旋鎖、可重入鎖?

  25. 什么是協程(用戶態線程,減少數據拷貝,降低CPU開銷,無callback函數)?

  26. 線程池ThreadPoolExecutor的實現原理?

  27. J.U.C下的常見類的使用。lock, synchronized, ThreadPool的深入考察; BlockingQueue的使用。(take,poll的區別,put,offer的區別);原子類的實現。

  28. 各種常見鎖使用如果上面這些掌握很好,還可以看看更深一點的 False Sharing,Cache Line,可見性與原子性等;

五、Linux使用與問題分析排查

  1. 硬鏈接和軟鏈接的區別?

  2. inode是什么?

  3. Linux常用命令有哪些?

  4. 怎么看一個Java線程的資源耗用?

  5. Load過高的可能性有哪些?

  6. /etc/hosts文件什么做用?

  7. /etc/resolv.conf文件什么作用?

  8. 如何快速的將一個文本中所有“abc”替換為“xyz”?

  9. 你常用的Linux下用來進行網絡和磁盤IO分析的工具有哪些?

  10. 你常用的Linux下用來進行內存和CPU分析的工具有哪些?

  11. 發現磁盤空間不夠,如何快速找出占用空間最大的文件?

  12. Java服務端問題排查(OOM,CPU高,Load高,類沖突)

  13. Java常用問題排查工具及用法(top, iostat, vmstat, sar, tcpdump, jvisualvm, jmap, jconsole)

  14. Thread dump文件如何分析(Runnable,鎖,代碼棧,操作系統線程ID關聯)

  15. grep,awk,sed; 是否自己寫過shell腳本;

  16. 常見的cpu load過高,us過高,一般是什么問題。引申出是否用過top,jstat,jstack等。

  17. 常見的內存問題一般有哪些。 引申出是否用過free,top, jmap等。

六、框架使用

  1. Spring中Bean的生命周期。

  2. SpringMVC或Struts處理請求的流程。

  3. Spring AOP解決了什么問題?怎么實現的?aop與cglib,與asm的關系。

  4. Spring事務的傳播屬性是怎么回事?它會影響什么?

  5. Spring中BeanFactory和FactoryBean有什么區別?

  6. Spring框架中IOC的原理是什么?

  7. spring的依賴注入有哪幾種方式

  8. struts工作流程

  9. 用Spring如何實現一個切面?

  10. Spring 如何實現數據庫事務?

  11. Hibernate和Ibatis這類ORM框架的區別?什么是ORM,解決的痛點是什么?

  12. spriong ioc的生命周期,(init-method,intilizingbean接口方法afterPropertiesSet的先后順序)等。

  13. Hibernate對一二級緩存的使用,Lazy-Load的理解;

  14. Spring IoC AOP自己用代碼如何實現

  15. RPC的負載均衡、服務發現怎么做的

  16. 幾種推送模型的區別,long polling,websocket

七、數據庫相關

  1. MySQL InnoDB的特點?

  2. 樂觀鎖和悲觀鎖的區別?

  3. 數據庫隔離級別是什么?有什么作用?

  4. MySQL主備同步的基本原理。

  5. 如何從一張表中查出name字段包含“XYZ”的所有行?

  6. 索引數據結構(字典+BitTree)

  7. 如何優化數據庫性能(索引、分庫分表、批量操作、分頁算法、升級硬盤SSD、業務優化、主從部署)

  8. SQL什么情況下不會使用索引(不包含,不等于,函數)

  9. 一般在什么字段上建索引(過濾數據最多的字段)

  10. 如何從一張表中查出name字段不包含“XYZ”的所有行?

  11. MySQL,B+索引實現,行鎖實現,SQL優化

  12. Redis,RDB和AOF,如何做高可用、集群

  13. 如何解決高并發減庫存問題

  14. mysql存儲引擎中索引的實現機制;

  15. 數據庫事務的幾種粒度;

  16. 行鎖,表鎖;樂觀鎖,悲觀鎖

八、網絡協議和網絡編程

  1. TCP建立連接的過程。

  2. TCP斷開連接的過程。

  3. 瀏覽器發生302跳轉背后的邏輯?

  4. HTTP協議的交互流程。HTTP和HTTPS的差異,SSL的交互流程?

  5. Rest和Http什么關系? 大家都說Rest很輕量,你對Rest風格如何理解?

  6. TCP的滑動窗口協議有什么用?講講原理。

  7. HTTP協議都有哪些方法?

  8. 交換機和路由器的區別?

  9. 什么是VLAN,有什么作用?

  10. 什么是VXLAN,有什么作用?

  11. http協議(報文結構,斷點續傳,多線程下載,什么是長連接)

  12. tcp協議(建連過程,慢啟動,滑動窗口,七層模型)

  13. webservice協議(wsdl/soap格式,與rest協議的區別)

  14. spdy/http2.0協議是否有了解

  15. NIO的好處,Netty線程模型,什么是零拷貝

九、Redis等緩存系統/中間件/NoSQL/一致性Hash等

  1. 列舉一個常用的Redis客戶端的并發模型。

  2. HBase如何實現模糊查詢?

  3. 列舉一個常用的消息中間件,如果消息要保序如何實現?

  4. 如何實現一個Hashtable?你的設計如何考慮Hash沖突?如何優化?

  5. 分布式緩存,一致性hash

  6. LRU算法,slab分配,如何減少內存碎片

  7. 如何解決緩存單機熱點問題

  8. 什么是布隆過濾器,其實現原理是? False positive指的是?

  9. memcache與redis的區別

  10. zookeeper有什么功能,選舉算法如何進行

  11. map/reduce過程,如何用map/reduce實現兩個數據源的聯合統計

十、設計模式與重構

  1. 你在設計一個工廠的包的時候會遵循哪些原則?

  2. 你能列舉一個使用了Visitor/Decorator模式的開源項目/庫嗎?

  3. 你在編碼時最常用的設計模式有哪些?在什么場景下用?

  4. 如何實現一個單例?

  5. 代理模式(動態代理)

  6. 單例模式(懶漢模式,惡漢模式,并發初始化如何解決,volatile與lock的使用)

  7. JDK源碼里面都有些什么讓你印象深刻的設計模式使用,舉例看看?

  8. Reactor模式

十一、學習與進取心

  1. 平時會關注哪些技術?

  2. 會看那些技術博客和網站?

  3. 技術上有沒有偶像?

  4. 看過哪些技術書籍?

  5. 你平常都看些什么書?你去年和今年看的書中印象最深的基本技術書籍和非技術書籍是?

  6. (如果不看書)你平常都上哪些技術論壇?最喜歡哪個?為什么?

  7. 項目或產品中用到了什么新技術或框架

  8. 最近研究過什么業界流行的技術或框架

  9. 對現在所做的項目或產品的缺陷是否了解,有何規劃

  10. 是否有帶過項目,如何管理項目

  11. 是否有帶過團隊,團隊管理最大的挑戰點是什么

十二、抗壓能力及抗壓意愿

  1. 剛才你說的XXX實現跟那個開源的YYY很像,是不是抄來的?

  2. 對加班怎么看?

  3. 平臺是否有加班,是主動還是被動,是否非常抗拒

  4. 是否有負責多件事情,多件事情如何并行處理

  5. 你對你最近負責項目中最自豪的點是什么?

十三、開放性問題

  1. 一個大文件4G,里面一行行的數字,這時內存只有256M,如果做排序?

  2. 如果你部署的應用所在機器硬盤壞了,會發生什么?你的程序要如何處理這種異常?(分布式系統中故障是一種常態,設計要避免單點故障,能容錯,保證系統高可用)

  3. 實現一個消息隊列系統

  4. 如何設計一個高可用的架構

  5. 多次Hash來解決URL重復訪問問題。

  6. 全局唯一ID問題。

  7. 秒殺如何設計。

  8. 如何進行性能優化。

  9. 發現CPU 100%,如何排查?

  10. 實現一個分布式打點系統。

  11. taobao.com和tmall.com的互相登錄的問題。

  12. 如何快速對一個2億數據的List進行排序?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,327評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,996評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,316評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,406評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,128評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,524評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,576評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,759評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,310評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,065評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,249評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,821評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,479評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,909評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,140評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,984評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,228評論 2 375

推薦閱讀更多精彩內容