Java基礎
進程和線程的區別;
Java的並發、多線程、線程模型;
什么是線程池,如何使用?
數據一致性如何保證;Synchronized關鍵字,類鎖,方法鎖,重入鎖;
Java中實現多態的機制是什么;
如何將一個Java對象序列化到文件里;
說說你對Java反射的理解;
同步的方法;多進程開發以及多進程應用場景;
在Java中wait和seelp方法的不同;
synchronized 和volatile 關鍵字的作用;
服務器只提供數據接收接口,在多線程或多進程條件下,如何保證數據的有序到達;
抽象類與接口的區別;應用場景;抽象類是否可以沒有方法和屬性;
靜態屬性和靜態方法是否可以被繼承?是否可以被重寫?以及原因?
修改對象A的equals方法的簽名,那么使用HashMap存放這個對象實例的時候,會調用哪個equals方法;
說說你對泛型的了解;
Java的異常體系;
如何控制某個方法允許並發訪問線程的個數;
動態代理的區別,什么場景使用;
Dex加載過程和優化方式;
Jvm和Gc機制;
常用的設計模式。
數據結構與算法
堆和棧在內存中的區別是什么(數據結構方面以及實際實現方面);
最快的排序算法是哪個?給阿里2萬多名員工按年齡排序應該選擇哪個算法?堆和樹的區別;寫出快排代碼;鏈表逆序代碼;
求1000以內的水仙花數以及40億以內的水仙花數;
子串包含問題(KMP 算法)寫代碼實現;
萬億級別的兩個URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分組->多文件讀寫效率->磁盤尋址以及應用層面對尋址的優化)
蟻群算法與蒙特卡洛算法;
寫出你所知道的排序算法及時空復雜度,穩定性;
百度POI中如何試下查找最近的商家功能(坐標鏡像+R樹)。
遍歷二叉樹
自己集合實現一個隊列
自己實現線程安全類
快速排序和冒泡的排序,怎么轉換一下。
其它
死鎖的四個必要條件;
常見編碼方式;utf-8編碼中的中文占幾個字節;int型幾個字節;
實現一個Json解析器(可以通過正則提高速度);
MVC MVP MVVM; 常見的設計模式;寫出觀察者模式的代碼;
TCP的3次握手和四次揮手;TCP與UDP的區別;
HTTP協議;HTTP1.0與2.0的區別;HTTP報文結構;
HTTP與HTTPS的區別以及如何實現安全性;
都使用過哪些框架、平台;
都使用過哪些自定義控件;
介紹你做過的哪些項目;
非技術問題匯總
研究比較深入的領域有哪些;
對業內信息的關注渠道有哪些;
自己最擅長的技術點,最感興趣的技術領域和技術點;
項目中用了哪些開源庫,如何避免因為引入開源庫而導致的安全性和穩定性問題;
時針走一圈,時針分針重合幾次;
現在下載速度很慢,試從網絡協議的角度分析原因,並優化(網絡的5層都可以涉及)。
java交流群669823128
經驗
阿里

阿里巴巴
阿里針對大部分校招的普通人來說,一面只會放出M1級別的,對應到P6,問你點基礎知識,二面可能是M2級別的也就是P7、P8的樣子,運氣好的遇到跟你談談人生談談職業規划什么的,運氣不好的遇到那種下面帶幾個team還成天看技術blog的就問你點比較新鮮的知識或者是比較基礎但是冷門的那種知識,所以平時沒事看點跨領域的博客、看點經典名著防防身還是很必要的,經歷了一整天枯燥無味的面試突然碰到一個眼前一亮的絕對是一個加分項。
騰訊

tx
騰訊的話也是類似的道理,校招一面放出的是各個有headcount的leader,T3.1到T3.3不等,幾個一面面試官對應一個二面面試官,后者是前面那幾個的老大。像鵝廠這樣的公司的是:
業務領域跨的特別廣。電商、SNS、普通的C/S軟件、游戲、各種App。
一面面試官直接對面試者負責。換句話說,通過你就意味着他要直接當你老大。
一面完全是隨便分的,你投的感興趣事業是互娛,但是分到的可能是SNG的某款社交產品的程序組老大面你,所以你的面試官不一定對得上的你background。
應該做哪些准備,才擁有進入BAT研發部門的資格?

電商項目實戰

分布式專題

工程化專題

微服務架構專題
性能優化

源碼分析專題
java學習群669823128