前言
經歷大半年準備,以及7輪面試終於進入阿里的阿里雲企業,既然已經進入夢想的阿里企業如今就把以前準備大半年的面試題以及面試官問的面試題分享出來給想進入阿里的朋友們,但願對大家有幫助。java
部分面試題:mysql
- 可重入鎖中對應的wait和notify
- redis能把內存空間交換進磁盤中嗎(這個應該是能夠的,可是那個面試官非跟我說不能夠)
- java線程池中基於緩存和基於定長的兩種線程池,當請求太多時分別是如何處理的?定長的事用的隊列,若是隊列也滿了呢?交換進磁盤?基於緩存的線程池解決方法呢?
- synchronized加在方法上用的什麼鎖
- 可重入鎖中的lock和trylock的區別
- innodb對一行數據的讀會枷鎖嗎?不枷鎖,讀實際讀的是副本
- redis作緩存是分佈式存的?不一樣的服務器上存的數據是否重複?guava cache呢?是否重複?不一樣的機器存的數據不一樣
- 用awk統計一個ip文件中top10
- 對錶作統計時可直接看schema info信息,即查看錶的系統信息
- mysql目前用的版本
- 公司經驗豐富的人給了什麼幫助?(通常boss面會問這些)
- 本身相對於同樣的應屆生有什麼優點
- 本身的好的總結習慣給本身從此的工做帶了什麼幫助,舉例爲證
- 原子類,線程安全的對象,異常的處理方式
- 4億個int數,如何找出重複的數(用hash方法,建一個2的32次方個bit的hash數組,每取一個int數,可hash下2的32次方找到它在hash數組中的位置,而後將bit置1表示已存在)
- 4億個url,找出其中重複的(考慮內存不夠,經過hash算法,將url分配到1000個文件中,不一樣的文件間確定就不會重複了,再分別找出重複的)
- 有1萬個數組,每一個數組有1000個整數,每一個數組都是降序的,從中找出最大的N個數,N<1000
- LinkedHashmap的底層實現
- 類序列化時類的版本號的用途,若是沒有指定一個版本號,系統是怎麼處理的?若是加了字段會怎麼樣?
- Override和Overload的區別,分別用在什麼場景
- java的反射是如何實現的
- 門面模式,類圖(外觀模式)
- mybatis如何映射表結構
- 二叉樹遍歷
- 主從複製
- mysql引擎區別
- 靜態內部類加載到了哪一個區?方法區
- class文件編譯後加載到了哪
- web的http請求如何總體響應時間變長致使處理的請求數變少,該如何處理?用隊列,當處理不了那麼多http請求時將請求放到隊列
- 中慢慢處理,web如何實現隊列
- 線程安全的單例模式
- 快速排序性能考慮
- volatile關鍵字用法
- 求表的size,或作數據統計可用什麼存儲引擎
- 讀多寫少可用什麼引擎
- 假如要統計多個表應該用什麼引擎
- concurrenhashmap求size是如何加鎖的,若是剛求完一段後這段發生了變化該如何處理
- 1000個蘋果放10個籃子,怎麼放,能讓我拿到全部可能的個數
- 可重入的讀寫鎖,可重入是如何實現的?
- 是否用過NIO
- java的concurrent包用過沒
- sting s=new string("abc")分別在堆棧上新建了哪些對象
- java虛擬機的區域分配,各區分別存什麼
- 分佈式事務(JTA)
- threadlocal使用時注意的問題(ThreadLocal和Synchonized都用於解決多線程併發訪問。可是ThreadLocal與synchronized有本質的區別。synchronized是利用鎖的機制,使變量或代碼塊在某一時該只能被一個線程訪問。而ThreadLocal爲每個線程都提供了變量的副本,使得每一個線程在某一時間訪問到的並非同一個對象,這樣就隔離了多個線程對數據的數據共享。而Synchronized卻正好相反,它用於在多個線程間通訊時可以得到數據共享)
- java有哪些容器(集合,tomcat也是一種容器)
- 二分查找算法
- myisam的優勢,和innodb的區別
- redis能存哪些類型
- http協議格式,get和post的區別
喜歡的給個贊,謝謝!歡迎評論分享經驗web