題外話
最近準(zhǔn)備離職,換個環(huán)境窿祥。發(fā)覺java的面試知識,我確實準(zhǔn)備不充分蝙寨,lz研究生期間是做iOS的晒衩,進(jìn)入某廠轉(zhuǎn)入Android。這次正式以Android的開發(fā)者進(jìn)入面試墙歪,哎听系,發(fā)覺一大堆坑。其實面試主要進(jìn)行了如下方面:
1. Android相關(guān)知識
2. java基礎(chǔ)知識
3. 開發(fā)者的基礎(chǔ)知識 數(shù)據(jù)結(jié)構(gòu)與算法虹菲、操作系統(tǒng)(這一面沒有涉及)等
面試準(zhǔn)備:
由于我簡歷上還有iOS相關(guān)的經(jīng)驗靠胜,還寫了個熟悉c/c++,于是復(fù)習(xí)內(nèi)容如下:
1. 程序員面試筆試寶典
2. 劍指offer
3. 找的網(wǎng)上java相關(guān)的面試題目
4. 看java源碼: 這里準(zhǔn)備有些不足毕源,細(xì)節(jié)上很多答不上來髓帽。
如 ArrayList擴(kuò)容和縮容,HashMap(jdk 1.8 后這里使用紅黑樹優(yōu)化也較難)脑豹, HashSet等面試前稍微看了下LinkedHashMap源碼郑藏,其實這里很多面試問題。這里還有一個比較難的源碼瘩欺,紅黑樹實現(xiàn)的TreeMap必盖,TreeSet
并發(fā)容器(這里沒怎么準(zhǔn)備): CopyOnWriteArrayList拌牲、LinkedBlockingQueue、ArrayBlockingQueue歌粥、SynchronousQueue塌忽。 以上源碼很多是需要分版本的。
5. 并發(fā)多線程的一些操作失驶。
6. Android源碼:只準(zhǔn)備了幾個項目相關(guān)的土居,如okHttp、Volley嬉探、EventBus擦耀、Butterknife等還有幾個圖片庫。其實還準(zhǔn)備了下裝逼的 retrofit+ rxjava但底層很多不是很明白涩堤,果斷在面試中不提眷蜓。
java 語法知識 主要集中在集合和多線程
先說一個題外話,恩胎围,還算幸運(yùn)吁系,居然沒有涉及到垃圾回收機(jī)制和JVM類加載等。以下是一面電話面試內(nèi)容白魂。
- ArrayList 擴(kuò)容
- ArrayList和LinkedList 區(qū)別
- ArrayList 刪除元素是否有縮容策略汽纤,當(dāng)時猜的是有,因為忘記了對應(yīng)的源代碼
- 如果是你福荸,怎么設(shè)計ArrayList 刪除時蕴坪,縮容策略
- 用過HashMap么? LinkedHashMap 和HashMap區(qū)別逞姿?
這個答得不好 - LinkedHashMap里面有按照順序存儲數(shù)據(jù),如果是你怎么設(shè)計捆等?
LRUChache的基本上就是采用的這個滞造。 - volatile關(guān)鍵字含義? 如果每個線程都存有共享數(shù)據(jù)的副本栋烤,是否會浪費(fèi)空間谒养。 JVM的內(nèi)存模型實質(zhì)
- 設(shè)計一種多線程的數(shù)組滿足讀多寫少的情況。會哪些存在的線程并發(fā)問題明郭。
CopyOnWriteArrayList
Android的知識
- Activity 的lanchMode 和FLAG標(biāo)簽
- Service中 bindSerice和 startService 區(qū)別
- 事件攔截和傳遞機(jī)制
- Textiew怎么添加圖片
- TextView加載很多文字的時候买窟,加載較慢,如何優(yōu)化
- 強(qiáng)引用薯定,弱引用始绍,軟引用的區(qū)別等
數(shù)據(jù)結(jié)構(gòu)
- 鏈表的是否相交 當(dāng)時提供了幾種解法,然后自己給自己挖坑了
- 如何判斷交點(diǎn)
當(dāng)然面試的時候還有些細(xì)節(jié)部分话侄,主要過了一段時間記不清楚了亏推。以上僅供參考学赛,如有雷同純屬你抄我。