JS
java
時隔兩年,再一次的面臨離職找工做,這一次換工做有些許的不捨,也有些許的無奈。我的所在的技術團隊不錯,兩年時間成長了不少,也很不捨這個團隊。可是,因爲公司的某些緣由和對於自身將來發展的綜合考慮,又不得不得離去,去尋找更合適的地方成長和發展。相比於兩年前,如今找工做沒有那麼的着急,也沒有那麼的迫切,也沒有特別想去的公司,反正去大廠互聯網公司基本都是加班加點的。也許,這是工做三年的我即將面臨的一個坎吧。對於將來的選擇和考慮,對於將來的恐懼吧。也許我是杞人憂天,也許是上天註定我將去某一家公司,無論怎樣,堅持作最好的本身!不停進步,不停成長!mysql
下面將最近面試遇到的一些題目進行彙總以下,但願對如今正在找工做的同窗和如今面臨畢業找工做的同窗有所幫助。react
一、經常使用設計模式linux
單例模式:懶漢式、餓漢式、雙重校驗鎖、靜態加載,內部類加載、枚舉類加載。保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。nginx
代理模式:動態代理和靜態代理,何時使用動態代理。面試
適配器模式:將一個類的接口轉換成客戶但願的另一個接口。適配器模式使得本來因爲接口不兼容而不能一塊兒工做的那些類能夠一塊兒工做。redis
裝飾者模式:動態給類加功能。算法
觀察者模式:有時被稱做發佈/訂閱模式,觀察者模式定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知全部觀察者對象,使它們可以自動更新本身。spring
策略模式:定義一系列的算法,把它們一個個封裝起來, 而且使它們可相互替換。sql
外觀模式:爲子系統中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
命令模式:將一個請求封裝成一個對象,從而使您能夠用不一樣的請求對客戶進行參數化。
建立者模式:將一個複雜的構建與其表示相分離,使得一樣的構建過程能夠建立不一樣的表示。
抽象工廠模式:提供一個建立一系列相關或相互依賴對象的接口,而無需指定它們具體的類。
二、基礎知識
Java基本類型哪些,所佔字節和範圍
Set、List、Map的區別和聯繫
何時使用Hashmap
何時使用Linkedhashmap、Concurrenthashmap、Weakhashmap
哪些集合類是線程安全的
爲何Set、List、map不實現Cloneable和Serializable接口
Concurrenthashmap的實現,1.7和1.8的實現
Arrays.sort的實現
何時使用CopyOnArrayList
volatile的使用
synchronied的使用
reentrantlock的實現和Synchronied的區別
CAS的實現原理以及問題
AQS的實現原理
接口和抽象類的區別,何時使用
類加載機制的步驟,每一步作了什麼,static和final修改的成員變量的加載時機
雙親委派模型
反射機制:反射動態擦除泛型、反射動態調用方法等
動態綁定:父類引用指向子類對象
JVM內存管理機制:有哪些區域,每一個區域作了什麼
JVM垃圾回收機制:垃圾回收算法 垃圾回收器 垃圾回收策略
jvm參數的設置和jvm調優
什麼狀況產生年輕代內存溢出、什麼狀況產生年老代內存溢出
內部類:靜態內部類和匿名內部類的使用和區別
Redis和memcached:何時選擇redis,何時選擇memcached,內存模型和存儲策略是什麼樣的
MySQL的基本操做 主從數據庫一致性維護
mysql的優化策略有哪些
mysql索引的實現 B+樹的實現原理
什麼狀況索引不會命中,會形成全表掃描
java中bio nio aio的區別和聯繫
爲何bio是阻塞的 nio是非阻塞的 nio是模型是什麼樣的
Java io的總體架構和使用的設計模式
Reactor模型和Proactor模型
http請求報文結構和內容
http三次握手和四次揮手
rpc相關:如何設計一個rpc框架,從io模型 傳輸協議 序列化方式綜合考慮
Linux命令 統計,排序,前幾問題等
StringBuff 和StringBuilder的實現,底層實現是經過byte數據,外加數組的拷貝來實現的
cas操做的使用
內存緩存和數據庫的一致性同步實現
微服務的優缺點
線程池的參數問題
ip問題 如何判斷ip是否在多個ip段中
判斷數組兩個中任意兩個數之和是否爲給定的值
樂觀鎖和悲觀鎖的實現
synchronized實現原理
你在項目中遇到的困難和怎麼解決的
你在項目中完成的比較出色的亮點
消息隊列廣播模式和發佈/訂閱模式的區別
生產者消費者代碼實現
死鎖代碼實現
線程池:參數,每一個參數的做用,幾種不一樣線程池的比較,阻塞隊列的使用,拒絕策略
Future和ListenableFuture 異步回調相關
算法相關:判斷可否從數組中找出兩個數字和爲給定值,隨機生成1~10000不重複並放入數組,求數組的子數組的最大和,二分查找算法的實現及其時間複雜計算
三、其它
算法:經常使用排序算法,二分查找,鏈表相關,數組相關,字符串相關,樹相關等
常見序列化協議及其優缺點
memcached內存原理,爲何是基於塊的存儲
搭建一個rpc須要準備什麼
若是線上服務器頻繁地出現full gc ,如何去排查
若是某一時刻線上機器忽然量變得很大,服務扛不住了,怎麼解決
LUR算法的實現
LinkedHashMap實現LRU
定義棧的數據結構,請在該類型中實現一個可以找到棧最小元素的min函數
海量數據處理的解決思路
reactor模型的演變
阻塞、非阻塞、同步、異步區別
Collection的子接口
jvm調優相關
zookeeper相關,節點類型,如何實現服務發現和服務註冊
nginx負載均衡相關,讓你去實現負載均衡,該怎麼實現
linux命令,awk、cat、sort、cut、grep、uniq、wc、top等
壓力測試相關,怎麼分析,單接口壓測和多狀況下的壓測
你以爲你的有點是什麼,你的缺點是什麼
spring mvc的實現原理
netty底層實現,IO模型,ChannelPipeline的實現和原理
緩存的設計和優化
緩存和數據庫一致性同步解決方案
你所在項目的系統架構,談談總體實現
消息隊列的使用場景
ActiveMQ、RabbitMQ、Kafka的區別