春暖花開,宅在家里快兩個(gè)月的在家辦公模式基本告一段落。企業(yè)復(fù)工,大家的工作生活終于可以回歸正軌,相信不少朋友已經(jīng)走出家門,迎戰(zhàn)跳槽季了。一些動作快的朋友已經(jīng)拿到一兩個(gè) Offer 了。
其實(shí),除了表達(dá)能力和面試技巧外,無非就從這些個(gè)方面進(jìn)行準(zhǔn)備:
一、那么專業(yè)技能怎么寫?
先問一下你自己會什么,然后看看你意向的公司需要什么。我說的是一般HR可能并不太懂技術(shù),(當(dāng)然內(nèi)部人員來面試就不一樣了)所以他在篩簡歷的時(shí)候可能就盯著你專業(yè)技能的關(guān)鍵詞來看。對于公司有要求而你不會的技能,你可以提前花幾天時(shí)間學(xué)習(xí)一下,然后在簡歷上可以寫上自己了解這個(gè)技能。比如你可以這樣寫(下面這部分內(nèi)容摘自我的簡歷,大家可以根據(jù)自己的情況做一些修改和完善):
- 計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)、算法、操作系統(tǒng)等課內(nèi)基礎(chǔ)知識:掌握
- Java 基礎(chǔ)知識:掌握
- JVM 虛擬機(jī)(Java內(nèi)存區(qū)域、虛擬機(jī)垃圾算法、虛擬垃圾收集器、JVM內(nèi)存管理):掌握
- 高并發(fā)、高可用、高性能系統(tǒng)開發(fā):掌握
- Struts2、Spring、Hibernate、Ajax、Mybatis、Redis、JQuery :掌握
- SSH 整合、SSM 整合、 SOA 架構(gòu):掌握
- Dubbo: 掌握
- Zookeeper: 掌握
- 常見消息隊(duì)列: 掌握
- Linux:掌握
- MySQL常見優(yōu)化手段:掌握
- Spring Boot +Spring Cloud +Docker:了解
- Hadoop 生態(tài)相關(guān)技術(shù)中的 HDFS、Storm、MapReduce、Hive、Hbase :了解
- Python 基礎(chǔ)、一些常見第三方庫比如OpenCV、wxpy、wordcloud、matplotlib:熟悉
二、分享一下我面試某家公司Java高級開發(fā)崗位,文末會分享一些我個(gè)人的學(xué)習(xí)文檔
一面(基礎(chǔ)面:大約60分鐘)
- 自我介紹
- 對象相等的判斷,equals方法實(shí)現(xiàn)。Hashcode的作用,與 equal 有什么區(qū)別?
- Java中CAS算法?
- G1回收器講一下?
- HashMap,ConcurrentHashMap與LinkedHashMap的區(qū)別
- 如何在多線程環(huán)境下使用Map,ConcurrentHashMap原理,ConcurrentHashMap如何加鎖。
- 多線程并發(fā)的同步實(shí)現(xiàn),有兩個(gè)方法,每個(gè)方法里有a部分代碼和b部分代碼,我要讓兩個(gè)線程分別執(zhí)行兩個(gè)方法,并且讓他們運(yùn)行完a部分代碼再一起向下執(zhí)行,如何實(shí)現(xiàn)。
- TCP連接中的三次握手和四次揮手,四次揮手的最后一個(gè)ack的作用是什么,為什么要time wait,為什么是2msl。
- aio,nio,bio的了解
- ReetrantLock和synchronized的區(qū)別。
- Java有哪些悲觀鎖的實(shí)現(xiàn)?
- Java有哪些類實(shí)現(xiàn)了樂觀鎖?
二面(二面就死抓多線程問)
- 線程池有哪些參數(shù)?分別有什么用?如果任務(wù)數(shù)超過的核心線程數(shù),會發(fā)生什么?阻塞隊(duì)列大小是多少?
- 數(shù)據(jù)庫連接池介紹下,底層實(shí)現(xiàn)說下
- hashset底層實(shí)現(xiàn),hashmap的put操作過程
- 說說HaspMap底層原理?再說說它跟HaspTable和ConcurrentHashMap他們之間的相同點(diǎn)和不同點(diǎn)?
- 說說B+樹和B樹的區(qū)別,優(yōu)缺點(diǎn)等?
- 算法題,對一個(gè)鏈表進(jìn)行歸并排序,鏈表可能有環(huán)
- 怎么實(shí)現(xiàn)一個(gè)線程安全的計(jì)數(shù)器?
- 原子類AtomicInteger實(shí)現(xiàn)原理是什么?和你設(shè)計(jì)的計(jì)數(shù)器優(yōu)劣比較?CAS怎么實(shí)現(xiàn)原子操作的?
- Java中的鎖有什么?synchronized與Lock的區(qū)別?公平鎖和非公平底層怎么實(shí)現(xiàn)的?AQS原理詳細(xì)介紹一下?
- 你在項(xiàng)目中一般怎么調(diào)優(yōu)JVM的呢?
- 說一下GC吧,什么時(shí)候進(jìn)行Full GC呢?
- 你了解哪些收集器?CMS和G1。詳細(xì)談?wù)凣1的優(yōu)點(diǎn)
三面(Redis和mysql也要掌握,面試也是必問)
- 了解哪些排序算法,講講復(fù)雜度
- 手撕歸并排序
- Redis有哪些數(shù)據(jù)結(jié)構(gòu)?底層的編碼有哪些?有序鏈表采用了哪些不同的編碼?
- redis的hash數(shù)據(jù)結(jié)構(gòu)最多能存儲多少個(gè)元素
- 自己如何實(shí)現(xiàn)RPC?
- mysql默認(rèn)存儲引擎?MyISAM、InnoDB、MEMORY的區(qū)別
- 什么是幻讀,如何解決
- 事務(wù)隔離級別有什么?通過什么來實(shí)現(xiàn)的?分別解決了什么問題?
- 樂觀鎖與悲觀鎖的使用場景
四面(這里問的技術(shù)問題就較多了 分布式架構(gòu) dubbo Spring cloudKafka 數(shù)據(jù)庫)
- 介紹對你技術(shù)能力幫助最大的項(xiàng)目,重點(diǎn)講架構(gòu)設(shè)計(jì)思路
- 分布式全局唯一ID怎樣來實(shí)現(xiàn)?
- dubbo的生產(chǎn)者如何發(fā)布服務(wù),注冊服務(wù),消費(fèi)者如何調(diào)用服務(wù)?
- dubbo負(fù)載均衡的策略有哪些?一致性哈希詳細(xì)聊一下?
- 分布式session如何實(shí)現(xiàn)的
- 微服務(wù)你的理解?以及常用的微服務(wù)方案dubbo、spring cloud的比較?
- Kafka怎么保證數(shù)據(jù)可靠性?
- 數(shù)據(jù)庫主從同步數(shù)據(jù)一致性如何解決?技術(shù)方案的優(yōu)劣勢比較?
- 分布式鎖的實(shí)現(xiàn)方式你知道有哪些?主流的解決方案是什么?
- Spring兩大特性?AOP和IOC
- Spring的初始化過程?Spring bean的生命周期?
- 多個(gè)RPC請求進(jìn)來,服務(wù)器怎么處理并發(fā)呢?
面試建議是,一定要自信,敢于表達(dá),面試的時(shí)候我們對知識的掌握有時(shí)候很難面面俱到,把自己的思路說出來,而不是直接告訴面試官自己不懂,這也是可以加分的。
三、比如,有如下的職位描述。
我們能從中挖掘出如下的技能需求點(diǎn):
- 3年經(jīng)驗(yàn),熟悉常用類庫
- 熟悉Spring和Mybatis框架
- 熟悉分布式中間件(比如消息,緩存等中間件)
- 熟悉數(shù)據(jù)庫,最好是NoSQL
- 最好有大數(shù)據(jù)經(jīng)驗(yàn)
而關(guān)于非技能的要求如下:
- 有責(zé)任心,有主動性
- 需要有團(tuán)隊(duì)合作的能力
- 需要有良好的編碼習(xí)慣,學(xué)習(xí)能力要強(qiáng)。
對于java高級開發(fā)而言,可以準(zhǔn)備如下的話題,大家也能以此為參考,準(zhǔn)備些其它的話題:
- 虛擬機(jī)內(nèi)存優(yōu)化
- 數(shù)據(jù)庫性能調(diào)優(yōu)
- 分布式高并發(fā)架構(gòu)
- 一些熱門組件,比如redis,nginx等
- 大數(shù)據(jù)方向的用法
- java core(比如集合或多線程)方面的底層實(shí)現(xiàn)代碼
- Spring系列(比如IOC, AOP, MVC,Spring Boot, Spring Cloud)方面的底層實(shí)現(xiàn)代碼。
四、要準(zhǔn)備到什么程度:
- 最好結(jié)合項(xiàng)目實(shí)際說出真的用過這些技術(shù)。
- 最好往性能調(diào)優(yōu)方面靠。
下面就以虛擬機(jī)為例,說下如何在面試中引出該話題,以及面試時(shí)該怎么說。其它亮點(diǎn)話題也可以照此準(zhǔn)備。
第一:在簡歷的最近項(xiàng)目介紹里加上類似這樣描述,“這個(gè)項(xiàng)目的內(nèi)存要求比較高,雖然在項(xiàng)目里分配的對象不少,但這個(gè)項(xiàng)目只被分配了1G內(nèi)存,所以在這個(gè)項(xiàng)目里,我實(shí)踐了一些定位排查內(nèi)存問題的技能,也做了些調(diào)優(yōu)的工作“,這樣面試官見到簡歷的描述,就會自然而然地提問了。
第二:在面試中總會有“項(xiàng)目介紹”這個(gè)環(huán)節(jié),面試官會讓候選人介紹最近的(或最拿得出手)的一個(gè)項(xiàng)目,這樣大家就可以順勢說出剛才已經(jīng)給出的描述。
第三:大家可以在回答數(shù)據(jù)庫或集合等方面的問題時(shí)引出這個(gè)話題,比如回答完JDBC問題后,大家可以說一句,“用好的Connection對象我們會及時(shí)關(guān)閉,否則它所占用的內(nèi)存對象無法被GC回收”,或者在談及List等集合類型時(shí),同時(shí)多說一句,“用好的集合對象我們會及時(shí)clear掉,否則這個(gè)集合也會對一些對象產(chǎn)生強(qiáng)引用,這樣就會延遲對象的回收時(shí)間”。
第四:在自我總結(jié)時(shí),可以說,有虛擬機(jī)調(diào)優(yōu)的經(jīng)驗(yàn)。
那么,在面試時(shí),該怎么說呢?
- 大家可時(shí)設(shè)置成null,以撤銷強(qiáng)引用。集合對象用好后應(yīng)當(dāng)及時(shí)clear。盡量別頻繁地使用String(或其它不變類)對象,這樣容易產(chǎn)生內(nèi)存碎片。
- 還展示監(jiān)控、定位和調(diào)優(yōu)方面的綜合能力。這里可以說下,比如通過Jprofiler+jmeter進(jìn)行JVM性能調(diào)優(yōu)的方法。
- 大家甚至可以看些虛擬機(jī)的底層實(shí)現(xiàn)細(xì)節(jié),在面試中說下,這樣能大大提升自己的專業(yè)素養(yǎng)。
五、刷題:
既然是要面試,那么就少不了刷題,實(shí)際上春節(jié)回家后,哪兒也去不了,我自己是刷了不少面試題的,所以在面試過程中才能夠做到心中有數(shù),基本上會清楚面試過程中會問到哪些知識點(diǎn),高頻題又有哪些,所以刷題是面試前期準(zhǔn)備過程中非常重要的一點(diǎn)。
六、提示自身的軟實(shí)力(知識和技術(shù))
第二個(gè)關(guān)鍵就要自己的自身實(shí)力過硬了,無論是你應(yīng)屆生,還是工作好幾年,無論是校招還是社招,企業(yè)招聘的永遠(yuǎn)是自身實(shí)力過硬的,也就是你的知識儲備,你的技術(shù)水平要達(dá)到要求,而提升自身軟實(shí)力的唯一辦法就是:不斷學(xué)習(xí)。
以下分享一些我個(gè)人的學(xué)習(xí)文檔,有需要的朋友加VX:msb_1600365490 自行選擇獲?。?/p>
友情提醒:獲取以上所有文檔資料,加VX:msb_1600365490 即可打包獲?。。赓M(fèi)分享的~)
- Java核心知識點(diǎn)
- Spring系列(實(shí)戰(zhàn))