金三銀四背後,一個JAVA程序員的面試心得

回顧一下本身這段時間的經歷,去年十二月份的時候,公司通知了裁人,我匆匆忙忙地出去面了幾家,但最終都沒有拿到offer,我感受今年的寒冬有點冷。後續的面試過程我作了一些準備,基本都能走到hr面,後面我也順利地拿到了offer,我給你們分享下個人求職體會,但願能給你們一些參考。java

金三銀四背後,一個JAVA程序員的面試心得mysql

下面說一下本身面試過程遇到的一些具體題目和麪試心得。linux

阿里面試題程序員

金三銀四背後,一個JAVA程序員的面試心得web

多個線程同時讀寫,讀線程的數量遠遠大於寫線程,你認爲應該如何解決併發的問題?你會選擇加什麼樣的鎖?面試

JAVA的AQS是否瞭解,它是幹嗎的?redis

除了synchronized關鍵字以外,你是怎麼來保障線程安全的?算法

Tomcat自己的參數你通常會怎麼調整?sql

你有沒有用過Spring的AOP? 是用來幹嗎的? 大概會怎麼使用?數據庫

若是一個接口有2個不一樣的實現, 那麼怎麼來Autowire一個指定的實現?

若是想在某個Bean生成並裝配完畢後執行本身的邏輯,能夠什麼方式實現?

SpringBoot沒有放到web容器裏爲何能跑HTTP服務?

SpringBoot中若是你想使用自定義的配置文件而不只僅是application.properties,應該怎麼弄?

SpringMVC若是但願把輸出的Object(例如XXResult或者XXResponse)這種包裝爲JSON輸出, 應該怎麼處理?

若是有不少數據插入MYSQL 你會選擇什麼方式?

若是查詢很慢,你會想到的第一個方式是什麼?索引是幹嗎的?

查詢死掉了,想要找出執行的查詢進程用什麼命令?找出來以後通常你會幹嗎?

讀寫分離是怎麼作的?你認爲中間件會怎麼來操做?這樣操做跟事務有什麼關係?

分庫分表有沒有作過?線上的遷移過程是怎麼樣的?如何肯定數據是正確的?

你知道哪些或者大家線上使用什麼GC策略? 它有什麼優點,適用於什麼場景?

JAVA類加載器包括幾種?它們之間的父子關係是怎麼樣的?雙親委派機制是什麼意思?有什麼好處?

如何自定義一個類加載器?你使用過哪些或者你在什麼場景下須要一個自定義的類加載器嗎?

堆內存設置的參數是什麼?

HashMap和Hashtable的區別。

實現一個保證迭代順序的HashMap。

說一說排序算法,穩定性,複雜度。

說一說GC。

JVM如何加載一個類的過程,雙親委派模型中有哪些方法?

TCP如何保證可靠傳輸?三次握手過程?

京東面試題

金三銀四背後,一個JAVA程序員的面試心得

java經常使用的數據結構有哪些?哪些是線程安全的?是怎麼保證線程安全的?

Redis中的Lua有沒有使用過? 能夠用來作什麼? 爲何能夠這麼用?

線程池內部工做原理能夠說一下麼?

死鎖是什麼意思,造成條件是什麼?出現死鎖是能夠經過什麼方式去排查。

在交易過程當中如何放在用戶在支付時的重複支付(交叉支付),請寫出你瞭解的方案或使用的過的方案。

數據庫索引有哪幾種,他們之間的區別。

程序開發時經過開發工具DeBug調試時,控制檯顯示的內容都包含什麼?哪些內容能夠幫助你發現問題和解決問題。

RPC通訊過程當中,假設A系統提供了一個方法入參是一個JavaBean,出參也是一個JavaBean。另外兩個系統B系統、C系統調用接口,調用方B想讓提供方A增長一個返回參數,假設服務提供方A增長了返回參數,請問C系統調用方須要作什麼處理?

瞭解哪些設計模式,用僞代碼實現一個你熟悉的設計模式。

講一下怎麼使用分佈式鎖。

說說HashMap的原理, 以及HashMap如何擴充bucket的大小。

Redis的Pipeline是用來幹什麼的?

Mysql索引的分類(Btree, hash),各自使用什麼狀況 。

說說Myisam, Innodb區別。

知道哪些負載均衡算法。

說一下Btree的查找原理。

簡述三次握手,若是c端發起握手請求,s端沒法馬上創建鏈接應該回應什麼?

去哪兒網面試題

金三銀四背後,一個JAVA程序員的面試心得

自我介紹,項目介紹。

mysql數據庫調優。

sql優化。

like能用索引嗎?

java對象四種引用。

GC原理。

jvm內存結構。

說一下你學過jvm 在書寫代碼上對你有什麼幫助和提升。

千萬數據量的查詢你會怎麼作?

HashMap在jdk1.7和1.8的區別,爲何引入這個概念?hash碰撞怎麼解決,爲何1.8要比1.7更好,好在哪?

關於你的項目,若是併發很大,你會怎麼改造。

方法區裏什麼樣的對象有可能被回收。

線上cpu飆升100%你怎麼處理。

頻繁FullGC怎麼處理。

線程池建立有幾種,爲何建立定長的線程池個數最好是5,10,15這樣的數字。

linux命令。

伊甸區和倖存區可動態變化嗎?

redis和memcached區別。

說幾個jdk命令,jmap是什麼意思。

若是併發很大,你對數據的正確性怎麼保證。

餓了麼面試題

金三銀四背後,一個JAVA程序員的面試心得

http和https的區別,https原理,http2.0與1.0的區別。

Java的垃圾回收機制,Java文件加載機制,tomcat類加載機制,鎖機制,jvm原理及線上調優,jvm內存模型。

多線程,有哪些能夠保持進程同步的方法,建立線程的幾種方法,對i++多線程訪問你會怎麼作。

Java的設計模式,單例有什麼模式,懶漢爲何加volotile,volotile的內存屏障,如何避免死鎖。

考慮單例模式的編寫,要線程安全且內存消耗小(劍指offer原題)。

String、StringBuilder、StringBuffer區別;String類能被繼承嗎?爲何?

在白紙上手寫二分法排序算法(lintcode上原題);二分查找的思想。

查找單鏈表中倒數第k個節點的算法,手寫(lintcode上原題);最多見的排序算法你見過哪些,快排的基本思想及時間複雜度。

常見的數據結構有哪些。

hashmap、hashcode同樣,不equals怎麼處理 ;hashcode實現原理,currentHashMap原理,實現細節,怎麼實現同步的;類爲何要有hascode方法,是否是主要在集合類中都要實現hashcode方法;equals方法怎麼實現;兩個不一樣的對象可能有相同的hashcode值嗎;經常使用集合有哪些。

tcp三次握手,四次揮手協議。

架構設計一個開發性問題,設計一個Nginx管理的中間件,怎麼設計。

全部的類都繼承與object,你用過object類的直接子類有哪些,object類經常使用的方法有哪些。

Java會出現內存泄漏嗎,若是回,在哪一種狀況下?

抽象類和接口的區別。

平時怎麼擴展本身的專業知識水平。

百度面試題

金三銀四背後,一個JAVA程序員的面試心得

什麼是 Java 的反射機制。

Cookie 和 Session的區別。

get 和 post請求的區別。

IOC的優勢是什麼。

IO 和 NIO的區別,NIO優勢。

JRE、JDK、JVM 及 JIT 之間有什麼不一樣。

Hashcode 的做用。

簡述一致性 Hash 算法。
創一個小羣,供你們學習交流聊天
若是有對學JAVA方面有什麼疑惑問題的,或者有什麼想說的想聊的你們能夠一塊兒交流學習一塊兒進步呀。
也但願你們對學JAVA可以鍥而不捨
JAVA愛好羣,
若是你想要學好JAVA最好加入一個組織,這樣你們學習的話就比較方便,還可以共同交流和分享資料,給你推薦一個學習的組織:快樂學習JAVA組織 能夠點擊組織二字,能夠直達
圖片描述

爲何在重寫 equals 方法的時候須要重寫 hashCode 方法?equals與 hashCode 的異同點在哪裏。

爲何 Map 接口不繼承 Collection 接口。

說出幾點 Java 中使用 Collections 的最佳實踐?

GC是什麼?爲何要有GC。

何時會致使垃圾回收。

GC 有幾種方式?怎麼配置。

何時一個對象會被GC? 如何判斷一個對象是否存活。

垃圾回收器的基本原理是什麼?

Serial 與 Parallel GC之間的不一樣之處。

JVM 中一次完整的 GC 流程是怎樣的? 對象如何晉升到老年代。

吞吐量優先和響應優先的垃圾收集器選擇。

說說你知道的幾種主要的jvm 參數。

Java中存在內存泄漏問題嗎?請舉例說明。

什麼是線程,多線程的優勢是什麼?以及簡單說一下多線程的幾種實現方式。

ThreadLocal 用途是什麼,原理是什麼,用的時候要注意什麼?

線程池是什麼?爲何要使用它?如何建立一個Java線程池?

ThreadPool用法與優點能夠說一下麼?

synchronized 的原理是什麼?synchronized 和 ReentrantLock 有什麼不一樣?

有T1,T2,T3三個線程,怎麼確保它們按順序執行?怎樣保證T2在T1執行完後執行,T3在T2執行完後執行同步塊內的線程拋出異常會發生什麼?

什麼是樂觀鎖(Optimistic Locking)?如何實現樂觀鎖?如何避免ABA問題。

Java中活鎖和死鎖有什麼區別?

Executors類是什麼? Executor和Executors的區別?

什麼是設計模式(Design Patterns)?你用過哪一種設計模式?用在什麼場合?

你能寫出三種單例模式實現麼?

你知道Google是如何在一秒內把搜索結果返回給用戶?

高併發下,如何作到安全的修改同一行數據?

如何避免瀏覽器緩存。

大型網站在架構上應當考慮哪些問題?

最近有在看什麼書麼,印象最深入的是什麼?

大家線上應用的 JVM 參數有哪些?

能簡單說下你對算法的理解麼?

面試心得

準備要充分,知識面要儘可能的廣,同時深度也要夠。

面試安排上,若是不着急,儘可能給本身留多時間,兩天一家,及時作總結和補充。

心態要放平,當作一次技術交流,面試要看一部分的運氣,也要看一些眼緣,有的面試官一張嘴你就能感受到你此次面試完了。想去的公司沒有面試好,不要氣餒,繼續加油準備。

簡歷投遞方面,拉勾上投了不少常常不匹配,多是我學歷問題(自考本),有一些打擊自信心,若是有一樣感覺的,不妨換BOSS或者其餘平臺。避免打擊自信心。

寫簡歷必定要體現本身的優點,最好能體現相似於,用到了什麼技術,解決了什麼問題。簡歷上寫到的必定要成竹在胸。

相似於你的優點是什麼,你以爲你項目中作的比較好的地方有哪些,你能給公司帶來什麼,這種問題內心要先想一些,省得臨場發揮容易緊張說很差。

我所經歷的面試,通常技術面最少是兩輪。若是一輪後讓你走了,而你還自我感受良好,那我以爲你有必要回顧一下面試內容,並一條一條找找該問題的相關內容,大部分問題就在於你沒有答到點子上,多是深度不夠,也多是擴展不夠,繼續加油。

我本身收集了一些Java資料,裏面就包涵了一些BAT面試資料,以及一些 Java 高併發、分佈式、微服務、高性能、源碼分析、JVM等技術資料

因爲平臺規則限制,須要獲取資料的朋友們能夠關注小編,後臺私信「架構資料」獲取。

合理利用本身每一分每一秒的時間來學習提高本身,不要再用"沒有時間「來掩飾本身思想上的懶惰!趁年輕,使勁拼,給將來的本身一個交代!

相關文章
相關標籤/搜索