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