Interview:Java崗位面試—面試求職攻略之一個JAVA程序員面試心得(非常值得收藏)
導(dǎo)讀 據(jù)網(wǎng)上資料顯示:2018年互聯(lián)網(wǎng)行業(yè)是寒冬,其他行業(yè)日子也不好過。各個互聯(lián)網(wǎng)大廠紛紛縮招減員,嚴格控制生產(chǎn)成本,有些公司已經(jīng)確認年終獎減少或是不發(fā),。像是大家熟悉的阿里,業(yè)務(wù)線不批offer了;大家愛用的京東,進行了“人員優(yōu)化”;滴滴最近一次會議上表示高管沒有年終獎,普通員工年終獎減半......這一切都在表示,互聯(lián)網(wǎng)的資本市場需要回歸理性,一些沒有起色的互聯(lián)網(wǎng)公司要面臨洗牌了,。 博主認為:互聯(lián)網(wǎng)洗牌并不意味著退場或者清場,而是表示落后企業(yè)的淘汰,、新舊技術(shù)的更替、人才的優(yōu)化,以及新機遇的更新,。當(dāng)大家都在說互聯(lián)網(wǎng)寒冬的時候,當(dāng)下到底是不是,有沒有這種現(xiàn)象,大多數(shù)人都是事后諸葛亮,。其實,大家沒必要花太多時間去研究或者去討論。當(dāng)下,你只需要明白,任何事情有挑戰(zhàn)也就意味著有新機會,而機會,都會留給有準備的人,。 那么,你,準備好了嗎?
大佬觀點分享
? ? ? ? ?對于2019年怎樣過冬,一些行業(yè)大佬也紛紛發(fā)表了自己的看法,。 馬云表示:“我們很清楚,只有變革才有我們的機會,任何的變化你把它當(dāng)作災(zāi)難的時候,那就越來越看不順眼,當(dāng)作機會的時候,就越看越有意思,在危機關(guān)頭,能熬過困難、熬過挑戰(zhàn)的企業(yè)才有抗體,。抱怨自己沒遇上好的年代,這樣的人永遠不可能遇上更好的時代,?!?br>李開復(fù)說:“從一個宏觀的角度來說,第一個我們認為其實經(jīng)濟都是有它的周期存在的,歷史上來說,在一些比較大的挑戰(zhàn)的時候,然而是一些投資甚至是創(chuàng)業(yè)最好的機會,那些真正有想法、有理想,、有能力的人才會出來創(chuàng)業(yè),。” 朱嘯虎說:“中國互聯(lián)網(wǎng)一直是周期性的,每兩三年都有一個周期,有寒冬期,有泡沫期,過去12個月顯然是泡沫期,估值非常高,。你可以看到最近上市公司的最后一個投資人幾乎是不賺錢的,未來的兩年我認為會稍微調(diào)整一下,等到明年下半年或年底又會起來,。” 郭廣昌表示:“我對當(dāng)下經(jīng)濟的看法是,第一,經(jīng)濟的確會很困難,這個冬天會非常冷,。第二,世界上要有一個救世主,就是市場;而在市場里,能救你的只有自己,。” 熊曉鴿表示:“我覺得做投資不管什么時候,心態(tài)特別重要,我也經(jīng)常說做投資和管基金,也許是一個幸災(zāi)樂禍的行業(yè),因為真正很好的機會反而在每一次谷底的時候才看得比較清楚,。凡是大家都很順,、股票都很好、大家都在燒錢的時候,卻是必須要冷靜,?!?/p>
互聯(lián)網(wǎng)環(huán)境背景
? ? ? ? ?根據(jù)相關(guān)指數(shù)顯示,互聯(lián)網(wǎng)寒冬和裁員呈正相關(guān)性。從表中可以看到,2018年末,關(guān)鍵詞【互聯(lián)網(wǎng)寒冬】,、【裁員】,其搜索量在2018年12月為高峰,目前已經(jīng)過去高峰階段,在理性回歸,。我們在認清整個互聯(lián)網(wǎng)大環(huán)境的情況下,正視自己,補充自己,機會都是留給有準備的人,馬上步入春天了,Are you ready?
互聯(lián)網(wǎng)各家面試題
本文章的面試求職部分內(nèi)容參考《金三銀四背后,一個JAVA程序員的面試心得》
? ? ?回顧一下自己這段時間的經(jīng)歷,去年十二月份的時候,公司通知了裁員,我匆匆忙忙地出去面了幾家,但最終都沒有拿到offer,我感覺今年的寒冬有點冷。后續(xù)的面試過程我做了一些準備,基本都能走到hr面,后面我也順利地拿到了offer,我給大家分享下我的求職體會,希望能給大家一些參考,。 ? ? ? ? ?----------轉(zhuǎn)自Java爛豬皮
百度面試題
百度招聘:https://talent.baidu.com/external/baidu/index.html
- 什么是 Java 的反射機制,。
- Cookie 和 Session的區(qū)別。
- get 和 post請求的區(qū)別,。
- IOC的優(yōu)點是什么,。
- IO 和 NIO的區(qū)別,NIO優(yōu)點。
- JRE,、JDK,、JVM 及 JIT 之間有什么不同。
- Hashcode 的作用,。
- 簡述一致性 Hash 算法,。
- 為什么在重寫 equals 方法的時候需要重寫 hashCode 方法?equals與 hashCode 的異同點在哪里。
- 為什么 Map 接口不繼承 Collection 接口,。
- 說出幾點 Java 中使用 Collections 的最佳實踐?
- GC是什么?為什么要有GC,。
- 什么時候會導(dǎo)致垃圾回收。
- GC 有幾種方式?怎么配置,。
- 什么時候一個對象會被GC? 如何判斷一個對象是否存活,。
- 垃圾回收器的基本原理是什么?
- Serial 與 Parallel GC之間的不同之處。
- JVM 中一次完整的 GC 流程是怎樣的? 對象如何晉升到老年代。
- 吞吐量優(yōu)先和響應(yīng)優(yōu)先的垃圾收集器選擇,。
- 說說你知道的幾種主要的jvm 參數(shù)。
- Java中存在內(nèi)存泄漏問題嗎?請舉例說明,。
- 什么是線程,多線程的優(yōu)點是什么?以及簡單說一下多線程的幾種實現(xiàn)方式,。
- ThreadLocal 用途是什么,原理是什么,用的時候要注意什么?
- 線程池是什么?為什么要使用它?如何創(chuàng)建一個Java線程池?
- ThreadPool用法與優(yōu)勢可以說一下么?
- synchronized 的原理是什么?synchronized 和 ReentrantLock 有什么不同?
- 有T1,T2,T3三個線程,怎么確保它們按順序執(zhí)行?怎樣保證T2在T1執(zhí)行完后執(zhí)行,T3在T2
- 行完后執(zhí)行同步塊內(nèi)的線程拋出異常會發(fā)生什么?
- 什么是樂觀鎖(Optimistic Locking)?如何實現(xiàn)樂觀鎖?如何避免ABA問題。
- Java中活鎖和死鎖有什么區(qū)別?
- Executors類是什么? Executor和Executors的區(qū)別?
- 什么是設(shè)計模式(Design Patterns)?你用過哪種設(shè)計模式?用在什么場合?
- 你能寫出三種單例模式實現(xiàn)么?
- 你知道Google是如何在一秒內(nèi)把搜索結(jié)果返回給用戶?
- 高并發(fā)下,如何做到安全的修改同一行數(shù)據(jù)?
- 如何避免瀏覽器緩存,。
- 大型網(wǎng)站在架構(gòu)上應(yīng)當(dāng)考慮哪些問題?
- 最近有在看什么書么,印象最深刻的是什么?
- 你們線上應(yīng)用的 JVM 參數(shù)有哪些?
- 能簡單說下你對算法的理解么?
阿里巴巴面試題
阿里巴巴招聘:https://job.alibaba.com/zhaopin/index.htm
- 多個線程同時讀寫,讀線程的數(shù)量遠遠大于寫線程,你認為應(yīng)該如何解決并發(fā)的問題?你會選擇加什么樣的鎖?
- JAVA的AQS是否了解,它是干嘛的?
- 除了synchronized關(guān)鍵字之外,你是怎么來保障線程安全的?
- Tomcat本身的參數(shù)你一般會怎么調(diào)整?
- 你有沒有用過Spring的AOP? 是用來干嘛的? 大概會怎么使用?
- 如果一個接口有2個不同的實現(xiàn), 那么怎么來Autowire一個指定的實現(xiàn)?
- 如果想在某個Bean生成并裝配完畢后執(zhí)行自己的邏輯,可以什么方式實現(xiàn)?
- SpringBoot沒有放到web容器里為什么能跑HTTP服務(wù)?
- SpringBoot中如果你想使用自定義的配置文件而不僅僅是application.properties,應(yīng)該怎么弄?
- SpringMVC如果希望把輸出的Object(例如XXResult或者XXResponse)這種包裝為JSON輸出, 應(yīng)該怎么處理?
- 如果有很多數(shù)據(jù)插入MYSQL 你會選擇什么方式?
- 如果查詢很慢,你會想到的第一個方式是什么?索引是干嘛的?
- 查詢死掉了,想要找出執(zhí)行的查詢進程用什么命令?找出來之后一般你會干嘛?
- 讀寫分離是怎么做的?你認為中間件會怎么來操作?這樣操作跟事務(wù)有什么關(guān)系?
- 分庫分表有沒有做過?線上的遷移過程是怎么樣的?如何確定數(shù)據(jù)是正確的?
- 你知道哪些或者你們線上使用什么GC策略? 它有什么優(yōu)勢,適用于什么場景?
- JAVA類加載器包括幾種?它們之間的父子關(guān)系是怎么樣的?雙親委派機制是什么意思?有什么好處?
- 如何自定義一個類加載器?你使用過哪些或者你在什么場景下需要一個自定義的類加載器嗎?
- 堆內(nèi)存設(shè)置的參數(shù)是什么?
- HashMap和Hashtable的區(qū)別,。
- 實現(xiàn)一個保證迭代順序的HashMap。
- 說一說排序算法,穩(wěn)定性,復(fù)雜度,。
- 說一說GC,。
- JVM如何加載一個類的過程,雙親委派模型中有哪些方法?
- TCP如何保證可靠傳輸?三次握手過程?
京東面試題
京東招聘:http://campus.jd.com/home
- java常用的數(shù)據(jù)結(jié)構(gòu)有哪些?哪些是線程安全的?是怎么保證線程安全的?
- Redis中的Lua有沒有使用過? 可以用來做什么? 為什么可以這么用?
- 線程池內(nèi)部工作原理可以說一下么?
- 死鎖是什么意思,形成條件是什么?出現(xiàn)死鎖是可以通過什么方式去排查。
- 在交易過程中如何放在用戶在支付時的重復(fù)支付(交叉支付),請寫出你了解的方案或使用的過的方案,。
- 數(shù)據(jù)庫索引有哪幾種,他們之間的區(qū)別,。
- 程序開發(fā)時通過開發(fā)工具DeBug調(diào)試時,控制臺顯示的內(nèi)容都包含什么?哪些內(nèi)容可以幫助你發(fā)現(xiàn)問題和解決問題。
- RPC通信過程中,假設(shè)A系統(tǒng)提供了一個方法入?yún)⑹且粋€JavaBean,出參也是一個JavaBean,。另外兩個系統(tǒng)B系統(tǒng),、C系統(tǒng)調(diào)用接口,調(diào)用方B想讓提供方A增加一個返回參數(shù),假設(shè)服務(wù)提供方A增加了返回參數(shù),請問C系統(tǒng)調(diào)用方需要做什么處理?
- 了解哪些設(shè)計模式,用偽代碼實現(xiàn)一個你熟悉的設(shè)計模式。
- 講一下怎么使用分布式鎖,。
- 說說HashMap的原理, 以及HashMap如何擴充bucket的大小,。
- Redis的Pipeline是用來干什么的?
- Mysql索引的分類(Btree, hash),各自使用什么情況 。
- 說說Myisam, Innodb區(qū)別,。
- 知道哪些負載均衡算法,。
- 說一下Btree的查找原理。
- 簡述三次握手,如果c端發(fā)起握手請求,s端無法立刻建立連接應(yīng)該回應(yīng)什么?
?
去哪兒網(wǎng)面試題
去哪兒網(wǎng)招聘:http://qunar./xyindex
- 自我介紹,項目介紹,。
- mysql數(shù)據(jù)庫調(diào)優(yōu),。
- sql優(yōu)化。
- like能用索引嗎?
- java對象四種引用,。
- GC原理,。
- jvm內(nèi)存結(jié)構(gòu)。
- 說一下你學(xué)過jvm 在書寫代碼上對你有什么幫助和提高,。
- 千萬數(shù)據(jù)量的查詢你會怎么做?
- HashMap在jdk1.7和1.8的區(qū)別,為什么引入這個概念?hash碰撞怎么解決,為什么1.8要比1.7更好,好在哪?
- 關(guān)于你的項目,如果并發(fā)很大,你會怎么改造,。
- 方法區(qū)里什么樣的對象有可能被回收。
- 線上cpu飆升100%你怎么處理,。
- 頻繁FullGC怎么處理,。
- 線程池創(chuàng)建有幾種,為什么創(chuàng)建定長的線程池個數(shù)最好是5,10,15這樣的數(shù)字。
- linux命令,。
- 伊甸區(qū)和幸存區(qū)可動態(tài)變化嗎?
- redis和memcached區(qū)別,。
- 說幾個jdk命令,jmap是什么意思。
- 如果并發(fā)很大,你對數(shù)據(jù)的正確性怎么保證。
?
餓了么面試題
餓了么招聘:https://jobs./#/
- http和https的區(qū)別,https原理,http2.0與1.0的區(qū)別,。
- Java的垃圾回收機制,Java文件加載機制,tomcat類加載機制,鎖機制,jvm原理及線上調(diào)優(yōu),jvm內(nèi)存模型,。
- 多線程,有哪些可以保持進程同步的方法,創(chuàng)建線程的幾種方法,對i++多線程訪問你會怎么做。
- Java的設(shè)計模式,單例有什么模式,懶漢為什么加volotile,volotile的內(nèi)存屏障,如何避免死鎖,。
- 考慮單例模式的編寫,要線程安全且內(nèi)存消耗小(劍指offer原題),。
- String、StringBuilder,、StringBuffer區(qū)別;String類能被繼承嗎?為什么?
- 在白紙上手寫二分法排序算法(lintcode上原題);二分查找的思想,。
- 查找單鏈表中倒數(shù)第k個節(jié)點的算法,手寫(lintcode上原題);最常見的排序算法你見過哪些,快排的基本思想及時間復(fù)雜度。
- 常見的數(shù)據(jù)結(jié)構(gòu)有哪些,。
- hashmap,、hashcode一樣,不equals怎么處理 ;hashcode實現(xiàn)原理,currentHashMap原理,實現(xiàn)細節(jié),怎么實現(xiàn)同步的;類為什么要有hascode方法,是不是主要在集合類中都要實現(xiàn)hashcode方法;equals方法怎么實現(xiàn);兩個不同的對象可能有相同的hashcode值嗎;常用集合有哪些。
- tcp三次握手,四次揮手協(xié)議,。
- 架構(gòu)設(shè)計一個開發(fā)性問題,設(shè)計一個Nginx管理的中間件,怎么設(shè)計,。
- 所有的類都繼承與object,你用過object類的直接子類有哪些,object類常用的方法有哪些。
- Java會出現(xiàn)內(nèi)存泄漏嗎,如果回,在哪種情況下?
- 抽象類和接口的區(qū)別,。
- 平時怎么擴展自己的專業(yè)知識水平,。
?
面試心得
- 準備要充分,知識面要盡量的廣,同時深度也要夠。
- 面試安排上,如果不著急,盡量給自己留多時間,兩天一家,及時做總結(jié)和補充,。
- 心態(tài)要放平,當(dāng)做一次技術(shù)交流,面試要看一部分的運氣,也要看一些眼緣,有的面試官一張嘴你就能感覺到你這次面試完了,。想去的公司沒有面試好,不要氣餒,繼續(xù)加油準備。
- 簡歷投遞方面,拉勾上投了很多經(jīng)常不匹配,可能是我學(xué)歷問題(自考本),有一些打擊自信心,如果有同樣感受的,不妨換BOSS或者其他平臺,。避免打擊自信心,。
- 寫簡歷一定要體現(xiàn)自己的優(yōu)勢,最好能體現(xiàn)類似于,用到了什么技術(shù),解決了什么問題。簡歷上寫到的一定要胸有成竹,。
- 類似于你的優(yōu)勢是什么,你覺得你項目中做的比較好的地方有哪些,你能給公司帶來什么,這種問題心里要先想一些,免得臨場發(fā)揮容易緊張說不好,。
- 我所經(jīng)歷的面試,一般技術(shù)面最少是兩輪。如果一輪后讓你走了,而你還自我感覺良好,那我覺得你有必要回顧一下面試內(nèi)容,并一條一條找找該問題的相關(guān)內(nèi)容,大部分問題就在于你沒有答到點子上,可能是深度不夠,也可能是擴展不夠,繼續(xù)加油,。
?
? ? ? ?現(xiàn)在外面面試問的的確比較多,要求也挺高的,行情不好,薪資也不好要,所以心態(tài)一定要放好,找好自己的定位,心態(tài)一定要好,。本文是由作者一位好友把他的面試心得分享而得,有著5年工作經(jīng)驗,目前在上海一家阿里系公司就職。希望這些面試題對大家有所幫助,再此表示,答案會在作者的交流群里與大家分享交流,。 ? ? ? ??? ? ? ? ?----------轉(zhuǎn)自Java爛豬皮 ? ? ? ?在這,也祝大家在金三銀四面試的道路上,都能夠找到大家心儀的下家!
求職技巧
- 了解行業(yè)的動態(tài),應(yīng)聘發(fā)展勢頭良好的崗位:既然身處互聯(lián)網(wǎng)時代,那就應(yīng)該好好利用互聯(lián)網(wǎng),現(xiàn)在各種招聘信息再各個平臺上都能找到,各種各樣的行業(yè)分析在論壇上也都屢見不鮮,。請教一下周圍的前輩,再橫向比較一下各公司崗位的優(yōu)缺點,總能夠找到幾份不錯的工作。不要覺得找工作只是自己的事情,多聽聽內(nèi)行人的話才能避免入坑,。
- 不斷充實自己,不要停下學(xué)習(xí)的腳步:在剛進入大學(xué)的時候,有很多學(xué)生都會抱怨高等數(shù)學(xué)和大學(xué)物理學(xué)了根本沒用啊,顯示生活中根本用不到啊,。他們其實想錯了,用不到只是因為他們還沒有接觸到,等到接觸到想要再去學(xué)習(xí)就晚了。現(xiàn)在非?;鸬娜斯ぶ悄苄袠I(yè),里面的算法知識沒有高等數(shù)學(xué)的支撐可搞不定,。有不少人看到這個崗位給非常高的工資,可是自己數(shù)學(xué)基礎(chǔ)又不好,學(xué)歷還不行,當(dāng)然沒有機會競爭。學(xué)習(xí)才是保持競爭力的關(guān)鍵,不要只看到眼前學(xué)到的知識沒有用處,要有一個長遠的規(guī)劃。
- 別好高騖遠,對自己的實力有清晰地認知:當(dāng)看到周圍的同學(xué)獲得一份高薪職業(yè)的時候,有一些人覺得自己也能找到一份同樣工資的職業(yè),。但結(jié)果往往就是漫天要價,沒有一個公司愿意招聘他,。別人獲得了一份高薪工作很可能付出了許多努力,你沒有付出就想獲得“回報”,擁有一份和自身實力不匹配的工資,豈不是“癡人說夢”?在大環(huán)境突然改變的情況下,認清自己的定位需要一個過程,這并不是每個人都能在短時間內(nèi)做到的。所以,要腳踏實地,正視自己,然后找到最適合自己的,。
? ? ? ? ? ? ? ? ? ??所謂萬丈深淵,下去也是前程萬里;猶記得,山重水復(fù)疑無路,柳暗花明又一村!
? ? ? ? 即使到了冬天,也要努力,讓自己成為那個不會被裁掉的那個人!何況,新生代獨角獸,都在冉冉升起,。2019年,互聯(lián)網(wǎng)江湖,隨著獨角獸們的日益壯大,互聯(lián)網(wǎng)的春天依舊盎然! ? ? ? ?最后,博主,祝大家2019年,求職順利!心想事成!
參考文章 金三銀四背后,一個JAVA程序員的面試心得 2019年畢業(yè)的學(xué)子,這份來自互聯(lián)網(wǎng)寒冬的啟示請收好! 互聯(lián)網(wǎng)寒冬來襲,2019年應(yīng)該如何過冬?馬云等發(fā)言讓人醍醐灌頂!
|