前言
最近面試了阿里集團(菜鳥網路,螞蟻金服),網易,滴滴,點我達,京東,最終收到點我達,京東offer,螞蟻金服二面掛掉,菜鳥網路一個月了還在流程中… 最終有幸去了京東, 但是要特別感謝點我達的領導及HR,真的非常非常好,很感謝他們一直的關照和指導,
面試整體事項
- 簡歷要準備好,聯系方式一定要正確清晰醒目,專案經歷按照時間倒序闡述,注意描述自己在專案中承擔的職責,簡歷的模板盡量選擇簡潔的,畢竟程式員大部分還是喜歡簡單明了的,
- 推薦boss直聘,我覺得很好用(不是廣告),
- 一般的整體面試流程都是電面->現場面->HR面->等著,
- 不要覺得HR說讓你回去等訊息就是GG了,他們也要跟你之前的面試官討論,再向領導匯報,如果說不急可能還要和其他候選人比較,所以HR讓你回去等訊息絕對不是說明你完蛋了,
- 面試前準備好自我介紹,1分鐘左右就可以,可以寫在紙上,電面可以照著念,等你到了現場面了基本也都快背下來你的自我介紹了,
- 準備好扎實的基礎,這是一切的根源,沒實力怎么都沒用的,
- 面試中你可以把你的面試官往你會的知識上引導(我遇到過你會什么他不問什么的),
- 遇到了設計類題目不要著急,面試官不是為了讓你幾分鐘設計一個高并發高可用設計模式完美的架構,只是想看看你的思路,看看你應變的能力,然后給你些提示看看你能否迅速的調整,
- offer都會有的,不要著急,把面試當成一個交流的程序,
需要準備的知識
以下為在近期面試中比較有印象的問題,也就不分公司了,因為沒什么意義,大致分類記錄一下,目前只想起這么多,不過一定要知道這些問題只是冰山一角,就算都會了也不能怎么樣,最最重要的,還是堅實的基礎,清醒的頭腦,
Java基礎
- HashMap的原始碼,實作原理,JDK8中對HashMap做了怎樣的優化,
- HaspMap擴容是怎樣擴容的,為什么都是2的N次冪的大小,
- HashMap,HashTable,ConcurrentHashMap的區別,
- 極高并發下HashTable和ConcurrentHashMap哪個性能更好,為什么,如何實作的,
- HashMap在高并發下如果沒有處理執行緒安全會有怎樣的安全隱患,具體表現是什么,
- java中四種修飾符的限制范圍,
- Object類中的方法,
- 介面和抽象類的區別,注意JDK8的介面可以有實作,
- 動態代理的兩種方式,以及區別,
- Java序列化的方式,
- 傳值和傳參考的區別,Java是怎么樣的,有沒有傳值參考,
- 一個ArrayList在回圈程序中洗掉,會不會出問題,為什么,
- @transactional注解在什么情況下會失效,為什么,
資料結構和演算法
- B+樹
- 快速排序,堆排序,插入排序(其實八大排序演算法都應該了解
- 一致性Hash演算法,一致性Hash演算法的應用
JVM
- JVM的記憶體結構,
- JVM方法堆疊的作業程序,方法堆疊和本地方法堆疊有什么區別,
- JVM的堆疊中參考如何和堆中的物件產生關聯,
- 可以了解一下逃逸分析技術,
- GC的常見演算法,CMS以及G1的垃圾回收程序,CMS的各個階段哪兩個是Stop the world的,CMS- 會不會產生碎片,G1的優勢,
- 標記清除和標記整理演算法的理解以及優缺點,
- eden survivor區的比例,為什么是這個比例,eden survivor的作業程序,
- JVM如何判斷一個物件是否該被GC,可以視為root的都有哪幾種型別,
- 強軟弱虛參考的區別以及GC對他們執行怎樣的操作,
- Java是否可以GC直接記憶體,
- Java類加載的程序,
- 雙親委派模型的程序以及優勢,
- 常用的JVM調優引數,
- dump檔案的分析,
- Java有沒有主動觸發GC的方式(沒有),
多執行緒
- Java實作多執行緒有哪幾種方式,
- Callable和Future的了解,
- 執行緒池的引數有哪些,在執行緒池創建一個執行緒的程序,
- volitile關鍵字的作用,原理,
- synchronized關鍵字的用法,優缺點,
- Lock介面有哪些實作類,使用場景是什么,
- 可重入鎖的用處及實作原理,寫時復制的程序,讀寫鎖,分段鎖(ConcurrentHashMap中的segment),
- 悲觀鎖,樂觀鎖,優缺點,CAS有什么缺陷,該如何解決,
- ABC三個執行緒如何保證順序執行,
- 執行緒的狀態都有哪些,
- sleep和wait的區別,
- notify和notifyall的區別,
- ThreadLocal的了解,實作原理,
資料庫相關
- 常見的資料庫優化手段
- 索引的優缺點,什么欄位上建立索引 資料庫連接池,
- durid的常用配置,
計算機網路
- TCP,UDP區別,
- 三次握手,四次揮手,為什么要四次揮手,
- 長連接和短連接,
- 連接池適合長連接還是短連接,
設計模式
- 在JDK中幾個常用的設計模式?
- 使用工廠模式最主要的好處是什么?在哪里使用?
- 舉一個用Java實作的裝飾模式(decoratordesignpattern)?它是作用于物件層次還是類層次?
- 什么情況下會更傾向于使用抽象類而不是介面?
分布式相關
- 分布式事務的控制,
- 分布式鎖如何設計,
- 分布式session如何設計,
- dubbo的組件有哪些,各有什么作用,
- zookeeper的負載均衡演算法有哪些,
- dubbo是如何利用介面就可以通信的,
快取相關
- redis和memcached的區別,
- redis支持哪些資料結構,
- redis是單執行緒的么,所有的作業都是單執行緒么,
- redis如何存盤一個String的,
- redis的部署方式,主從,集群,
- redis的哨兵模式,一個key值如何在redis集群中找到存盤在哪里,
- redis持久化策略,
框架相關
- SpringMVC的Controller是如何將引數和前端傳來的資料一一對應的,
- Mybatis如何找到指定的Mapper的,如何完成查詢的,
- Quartz是如何完成定時任務的,
- 自定義注解的實作,
- Spring使用了哪些設計模式,
- Spring的IOC有什么優勢,
- Spring如何維護它擁有的bean,
- 一些較新的東西 JDK8的新特性,流的概念及優勢,為什么有這種優勢,
- 如何設計雙11交易總額面板
一些小建議
- 可以去leetcode上刷題換換思路,
- 八大排序演算法一定要手敲一遍(快排,堆排尤其重要),
- 了解一些新興的技術,
- 面試之后面試官都會問你有沒有什么問題,千萬不要沒問題,也別傻乎乎的問一些敏感問題,
- 了解你要面試的公司的產品及競爭產品,
總結
無論是哪家公司,都很重視高并發高可用的技術,重視基礎,重視JVM,
面試是一個雙向選擇的程序,不要抱著畏懼的心態去面試,不利于自己的發揮,
同時看中的應該不止薪資,還要看你是不是真的喜歡這家公司,是不是能真的得到鍛煉,
其實我寫了這么多,只是我自己的總結,并不一定適用于所有人,相信經過一些面試,大家都會有這些感觸,
如果這些文字能夠幫到你,那就最好了,幫不到就當是我自己的一個記錄, 最后,希望大家都能找到適合自己的公司,開開心心的擼代碼
最后福利小彩蛋
面試題還有很多,但是本文章限于篇幅,只分享部分互聯網面試真題;關于本人所設計到的面試題,本人都已經整理成一份完整的PDF面試題集合,現免費分享給各位有需要的Java工程師朋友,有需要的可以 直接點擊這里,回復暗號:CS 即可領取!!!
部分資料展示


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/181418.html
標籤:其他
上一篇:自學編程,看書還是視頻?
