一、經常使用設計模式

  • 單例模式:懶漢式、餓漢式、雙重校驗鎖、靜態加載,內部類加載、枚舉類加載。保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。html

  • 代理模式:動態代理和靜態代理,何時使用動態代理。java

  • 適配器模式:將一個類的接口轉換成客戶但願的另一個接口。適配器模式使得本來因爲接口不兼容而不能一塊兒工做的那些類能夠一塊兒工做。mysql

  • 裝飾者模式:動態給類加功能。react

  • 觀察者模式:有時被稱做發佈/訂閱模式,觀察者模式定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知全部觀察者對象,使它們可以自動更新本身。linux

  • 策略模式:定義一系列的算法,把它們一個個封裝起來, 而且使它們可相互替換。nginx

  • 外觀模式:爲子系統中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。redis

  • 命令模式:將一個請求封裝成一個對象,從而使您能夠用不一樣的請求對客戶進行參數化。算法

  • 建立者模式:將一個複雜的構建與其表示相分離,使得一樣的構建過程能夠建立不一樣的表示。spring

  • 抽象工廠模式:提供一個建立一系列相關或相互依賴對象的接口,而無需指定它們具體的類。sql


二、基礎知識

  • Java基本類型哪些,所佔字節和範圍

  • Int 32 4 -2,147,483,648 ~ 2,147,483,647 Short 16 2 -32768 ~ 32678 long 64 8 -9,223,372,036,854,775,808~+9,223,372,036,854,775,807 float 32 4 -3,40292347E+38 ~ +3,40292347E+38 double 64 8 -1.79769313486231576E+308 ~ 1.79769313486231576E+308 char 16 2 ‘\u0000′ ~ ‘\uFFFF’ boolean 1 0.125 true/false byte 8 1 -128 ~ 127
     
  • Set、List、Map的區別和聯繫

    http://blog.csdn.net/qq_22118507/article/details/51576319

  • 何時使用Hashmap

    https://www.cnblogs.com/holyshengjie/p/6500463.html

  • 何時使用Linkedhashmap、Concurrenthashmap、Weakhashmap

    http://blog.csdn.net/yxy000/article/details/70214090

  • 哪些集合類是線程安全的

  • Vector:就比Arraylist多了個同步化機制(線程安全)。
    Hashtable:就比Hashmap多了個線程安全。
    ConcurrentHashMap:是一種高效可是線程安全的集合。 Stack:棧,也是線程安全的,繼承於Vector
     
  • 爲何Set、List、map不實現Cloneable和Serializable接口

  • 答:克隆(cloning)或者序列化(serialization)的語義和含義是跟具體的實現相關的。集合的具體形式多種多樣;所以應該由集合類的具體實現類來決定如何被克隆或者序列化
     
  • Concurrenthashmap的實現,1.7和1.8的實現

https://www.cnblogs.com/study-everyday/p/6430462.html
 
  • Arrays.sort的實現

  • http://blog.sina.com.cn/s/blog_7337d6a00100xpd5.html
     
  • 何時使用CopyOnArrayList

  • https://my.oschina.net/jielucky/blog/167198
     
  • volatile的使用

  • http://blog.csdn.net/coffee_hc/article/details/40057327
     
  • synchronied的使用

  • reentrantlock的實現和Synchronied的區別

  • http://blog.csdn.net/chenchaofuck1/article/details/51045134
     
  • CAS的實現原理以及問題

  • http://blog.csdn.net/qq_24708791/article/details/78535565

  • AQS的實現原理

  • https://www.cnblogs.com/200911/p/6031350.html

  • 接口和抽象類的區別,何時使用

  • 類加載機制的步驟,每一步作了什麼,static和final修改的成員變量的加載時機

  • https://www.cnblogs.com/qiuyong/p/6407418.html?utm_source=itdadao&utm_medium=referral

  • 雙親委派模型

  • https://baijiahao.baidu.com/s?id=1592540617370392465&wfr=spider&for=pc

  • 反射機制:反射動態擦除泛型、反射動態調用方法等

  • 動態綁定:父類引用指向子類對象

  • JVM內存管理機制:有哪些區域,每一個區域作了什麼

  • http://blog.51cto.com/4925054/2083724

  • JVM垃圾回收機制:垃圾回收算法 垃圾回收器 垃圾回收策略

  • http://blog.51cto.com/4925054/2083724

  • jvm參數的設置和jvm調優

    http://blog.csdn.net/mrzhoug/article/details/51148302

  • 什麼狀況產生年輕代內存溢出、什麼狀況產生年老代內存溢出

  • 內部類:靜態內部類和匿名內部類的使用和區別

    https://www.cnblogs.com/aademeng/articles/6192954.html

  • Redis和memcached:何時選擇redis,何時選擇memcached,內存模型和存儲策略是什麼樣的

  • http://blog.csdn.net/u010785685/article/details/52366977 http://blog.csdn.net/qq_26624661/article/details/79269740 

  • MySQL的基本操做 主從數據庫一致性維護

  • mysql的優化策略有哪些

    https://coolshell.cn/articles/1846.html

  • mysql索引的實現 B+樹的實現原理

    http://blog.csdn.net/qq_23217629/article/details/52512041

  • 什麼狀況索引不會命中,會形成全表掃描

  • java中bio nio aio的區別和聯繫

  • http://blog.csdn.net/qq_24693837/article/details/70335491?locationNum=4&fps=1 http://blog.csdn.net/u010031673/article/details/51755075 

  • 爲何bio是阻塞的 nio是非阻塞的 nio是模型是什麼樣的

  • Java io的總體架構和使用的設計模式

    http://blog.csdn.net/when_less_is_more/article/details/70194221

  • Reactor模型和Proactor模型

    http://blog.csdn.net/u013074465/article/details/46276967

  • http請求報文結構和內容

  • http三次握手和四次揮手

  • rpc相關:如何設計一個rpc框架,從io模型 傳輸協議 序列化方式綜合考慮

    https://baijiahao.baidu.com/s?id=1581381840259831727&wfr=spider&for=pc

  • Linux命令 統計,排序,前幾問題等

  • StringBuff 和StringBuilder的實現,底層實現是經過byte數據,外加數組的拷貝來實現的

  • cas操做的使用

  • 內存緩存和數據庫的一致性同步實現

    http://blog.csdn.net/feicongcong/article/details/54233376

  • 微服務的優缺點

  • 線程池的參數問題

    http://blog.csdn.net/zhouhl_cn/article/details/7392607

  • ip問題 如何判斷ip是否在多個ip段中

  • 判斷數組兩個中任意兩個數之和是否爲給定的值

  • 樂觀鎖和悲觀鎖的實現

  • https://www.cnblogs.com/softidea/p/5309312.html

  • synchronized實現原理

  • http://blog.csdn.net/shandian000/article/details/54927876

  • 你在項目中遇到的困難和怎麼解決的

  • 你在項目中完成的比較出色的亮點

  • 消息隊列廣播模式和發佈/訂閱模式的區別

    http://blog.csdn.net/heyutao007/article/details/50131089

  • 生產者消費者代碼實現

    https://www.cnblogs.com/Ming8006/p/7243858.html

  • 死鎖代碼實現

    http://blog.csdn.net/luxun2014/article/details/40987023

  • 線程池:參數,每一個參數的做用,幾種不一樣線程池的比較,阻塞隊列的使用,拒絕策略

  • Future和ListenableFuture 異步回調相關

    http://blog.csdn.net/pistolove/article/details/51232004

  • 算法相關:判斷可否從數組中找出兩個數字和爲給定值,隨機生成1~10000不重複並放入數組,求數組的子數組的最大和,二分查找算法的實現及其時間複雜計算


三、其它

  • 算法:經常使用排序算法,二分查找,鏈表相關,數組相關,字符串相關,樹相關等

  • 常見序列化協議及其優缺點

  • 搭建一個rpc須要準備什麼

  • 若是線上服務器頻繁地出現full gc ,如何去排查

  • 若是某一時刻線上機器忽然量變得很大,服務扛不住了,怎麼解決

  • LUR算法的實現

  • LinkedHashMap實現LRU

  • https://www.cnblogs.com/LZYY/p/3447785.html

  • 定義棧的數據結構,請在該類型中實現一個可以找到棧最小元素的min函數

  • 海量數據處理的解決思路

  • reactor模型的演變

  • 阻塞、非阻塞、同步、異步區別

  • Collection的子接口

  • jvm調優相關

  • zookeeper相關,節點類型,如何實現服務發現和服務註冊

  • nginx負載均衡相關,讓你去實現負載均衡,該怎麼實現

  • linux命令,awk、cat、sort、cut、grep、uniq、wc、top等

  • 你以爲你的有點是什麼,你的缺點是什麼

  • spring mvc的實現原理

  • netty底層實現,IO模型,ChannelPipeline的實現和原理

  • 緩存的設計和優化

  • 你所在項目的系統架構,談談總體實現

  • 消息隊列的使用場景

  • ActiveMQ、RabbitMQ、Kafka的區別