一個兩年Java工程師的面試總結
前言
16年畢業到現在也近兩年了,最近面試了阿里集團(菜鳥網路,螞蟻金服),網易,滴滴,點我達,最終收到點我達,網易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區別。三次握手,四次揮手,為什麼要四次揮手。長連線和短連線。連線池適合長連線還是短連線。
設計模式
觀察者模式代理模式單例模式,有五種寫法,可以參考文章單例模式的五種實現方式可以考Spring中使用了哪些設計模式
分散式相關
分散式事務的控制。分散式鎖如何設計。分散式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。面試是一個雙向選擇的過程,不要抱著畏懼的心態去面試,不利於自己的發揮。同時看中的應該不止薪資,還要看你是不是真的喜歡這家公司,是不是能真的得到鍛鍊。其實我寫了這麼多,只是我自己的總結,並不一定適用於所有人,相信經過一些面試,大家都會有這些感觸。如果這些文字能夠幫到你,那就最好了,幫不到就當是我自己的一個記錄。最後,希望大家都能找到適合自己的公司,開開心心的擼程式碼
效能優化
JVM調優
Java程式效能優化
Tomcat
Mysql
Spring IOC
Spring AOP
Spring MVC
Spring 5新特性
Mybatis
分散式架構
架構核心服務層技術
架構關鍵技術設施
分散式訊息通訊 非同步於MQ
分散式快取
Redis
Memcached
MongoDB
資料儲存
高併發分流技術Nginx
分散式解決方案
應用框架原始碼解讀
微服務專題
你還不知道微服務?怎麼加(zhuang)薪(bi)
SpringBoot
與微服務的區別於聯絡
快速構建SpringBoot工程
SpringBoot核心元件剖析
快速整合mybatis實戰
快速整合Dubbo及案例實戰
構建整合 redis及案例實戰
構建Swagger外掛實現API
管理及介面測試體系
SpringCloud
Zuul路由閘道器詳解原始碼探析
Ribbon客戶端負載均衡原理
Feign宣告式服務呼叫方式
Eureka註冊中心構件
Config配置服務中心
svn、git快速整合
Sleuth呼叫鏈路跟蹤
BUS訊息匯流排技術
Docker虛擬化技術
介紹、安裝與使用
compose部署指令碼
service服務編排
redis分散式叢集部署
docker file構建
通過maven外掛打包映象
部署及執行應用程式kubernetes編配
構建Mysql叢集實戰
高可用SpringCloud微服務與docker整合實現動態擴容實戰
團隊協作開發
Git
Maven
Jenkins
Sonar
B2C商城專案實戰
擼起袖子幹實事,專案經驗那點事
系統設計
架構設計
資料庫設計
部署設計
基礎開發框架講解
使用者管理子系統
使用者註冊登入(二維碼技術)
許可權控制(shiro)
單點登入(session統一快取、sso)
商品管理子系統
商品管理(MongoDB)
商品分類(MongoDB)
商品釋出(nosql與mysql資料同步)
熱賣商品排行(redis)
搜尋子系統
基於ES的全文探索
檢索需求分析
檢索策略
索引設定
分詞演算法
命中率優化
訂單實時統計
訂單子系統
分散式環境生成唯一編號(zookeeper)
下單業務流程(訊息中介軟體)
訂單可靠性
秒殺功能(redis)
訂單管理
訂單功能(mongodb)
支付系統
微信支付對接
支付寶對接
銀聯對接 開發
分散式排程系統
資料統計
資料同步
任務排程配置
後臺系統
日常管理
線上IM系統(websockedNIO)
使用者行為分析(日誌系統設計)
報表大資料查詢優化(mysql查詢優化)
想要學習瞭解以上技術加群766529531:本群提供免費的學習指導 架構資料 以及免費的解答不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導進群修改群備註:開發年限-地區-經驗方便架構師解答問題點選連結加入群聊:正在跳轉
效能優化
效能調優
JVM調優
Java程式效能優化
Tomcat
Mysql
應用框架原始碼解讀
Spring概述
Spring容器
Spring AOP
Spring MVC
Spring 5新特性
Mybatis
分散式架構
分散式架構思維
架構開發基礎
架構核心服務層技術
分散式環境指揮官Zookeeper
分散式訊息通訊 非同步於MQ
分散式快取Nosql
Redis
Memcached
快取開發專題
MongoDB
資料儲存
高併發分流技術Nginx
分散式常見場景解決方案
微服務架構
Springboot
SpringCloud
Docker虛擬化技術
團隊協作開發
Git
Maven
Jenkins
Sonar
B2C商城專案實戰
這裡有一套系統的學習導圖,自己有資料的可以按照導圖學習,沒有也沒關係點選鏈正在跳轉進群找群主即可
相關文章
- 一個兩年Java的面試總結Java面試
- 【轉】一個兩年Java的面試總結Java面試
- 一個兩年java程式猿的2017個人總結Java
- 面試總結——Java高階工程師面試Java工程師
- 最近Java高階工程師面試總結Java工程師面試
- 面試總結——Java高階工程師(二)面試Java工程師
- 面試總結——Java高階工程師(三)面試Java工程師
- 面試題總結 —— JAVA高階工程師面試題Java工程師
- 一個JAVA開發一年的總結Java
- 大學兩年的一點總結
- 經過兩個月面試,一名七年的後端開發寫下的面試總結面試後端
- Java開發工程師常見的面試總結走起.....Java工程師面試
- 測試工程師的面試總結工程師面試
- java面試總結Java面試
- 跳槽!3年Java面試經驗總結Java面試
- 一個兩年的程式設計師,面5家斬獲點我達,網易offer的面試總結程式設計師面試
- java 學習之路 --工作後兩年總結Java
- 這兩天的面試經驗總結面試
- 轉:測試工程師的面試總結工程師面試
- 分享一個PHP面試題總結PHP面試題
- 一位軟體工程師的6年總結軟體工程工程師
- 大資料開發工程師的兩年工作經驗總結大資料工程師
- 3年PHPer的面試總結PHP面試
- 網路工程師面試題總結工程師面試題
- 面試總結(一)面試
- 收藏:一位軟體工程師的6年總結軟體工程工程師
- 面試常遇到的萬用字元匹配的兩個小問題總結面試字元
- 2年Java開發工作經驗面試總結Java面試
- 一個三年Java程式設計師的面試總結!絕對會對你有所幫助!Java程式設計師面試
- Java面試知識總結(一)-- 網路基礎Java面試
- 面試題總結-Java部分面試題Java
- 【Java問題面試總結】Java面試
- Java面試題總結2Java面試題
- 一年前端近期面試總結前端面試
- java 面試總結(都是親身面試的經歷)Java面試
- 2021年Java面試題目最新總結【90%面試會踩的坑】Java面試題
- java開發一個應用的總結Java
- 面試問題總結(Java工程師 20190301)面試Java工程師