1. 程式人生 > >java高階工程師面試題總結

java高階工程師面試題總結

、面試題基礎總結

1、 JVM結構原理、GC工作機制詳解

答:具體參照:JVM結構、GC工作機制詳解     ,說到GC,記住兩點:1、GC是負責回收所有無任何引用物件的記憶體空間。 注意:垃圾回收回收的是無任何引用的物件佔據的記憶體空間而不是物件本身,2、GC回收機制的兩種演算法,a、引用計數法  b、可達性分析演算法(  這裡的可達性,大家可以看基礎2 Java物件的什麼週期),至於更詳細的GC演算法介紹,大家可以參考:Java GC機制演算法

2、Java物件的生命週期

答:建立階段 、 應用階段 、不可見階段 、不可達階段 、收集階段 、終結階段、 物件空間重新分配階段等等,具體參照:

Java 物件的生命週期

3、Map或者HashMap的儲存原理

答:HashMap是由陣列+連結串列的一個結構組成,具體參照:HashMap的實現原理

4、當資料表中A、B欄位做了組合索引,那麼單獨使用A或單獨使用B會有索引效果嗎?(使用like查詢如何有索引效果)

答:看A、B兩欄位做組合索引的時候,誰在前面,誰在後面,如果A在前,那麼單獨使用A會有索引效果,單獨使用B則沒有,反之亦然。同理,使用like模糊查詢時,如果只是使用前面%,那麼有索引效果,如果使用雙%號匹配,那麼則無索引效果

5、資料庫儲存日期格式時,如何考慮時區轉換問題?

6、Java Object類中有哪些方法?

7、HTTP協議,GET和POST 的區別

四、執行緒、設計模式、快取方面

1、SimpleDataFormat是非執行緒安全的,如何更好的使用而避免風險呢

2、如何看待設計模式,並簡單說說你對觀察者模式的理解

3、叢集環境中,session如何實現共享

4、分散式、叢集環境中,快取如何重新整理,如何保持同步?

答:A、快取如何重新整理? 1、定時重新整理  2、主動重新整理覆蓋   ,每個快取框架都有自帶的重新整理機制,或者說快取失效機制,就拿Redis和 Ehcache舉例, 他們都有自帶的過期機制,另外主動重新整理覆蓋時,只需獲取對應的key進行資料的覆蓋即可

B、快取如何保持同步?  這個redis有自帶的叢集同步機制,即複製功能,具體參考:

基於Redis分散式快取實現      ,Ehcache也有分散式快取同步的配置,只需要配置不同伺服器地址即可,參照:Ehcache分散式快取同步

5、一條sql執行過長的時間,你如何優化,從哪些方面?

答:1、檢視sql是否涉及多表的聯表或者子查詢,如果有,看是否能進行業務拆分,相關欄位冗餘或者合併成臨時表(業務和演算法的優化)
2、涉及連結串列的查詢,是否能進行分表查詢,單表查詢之後的結果進行欄位整合
3、如果以上兩種都不能操作,非要連結串列查詢,那麼考慮對相對應的查詢條件做索引。加快查詢速度
4、針對數量大的表進行歷史表分離(如交易流水錶)
5、資料庫主從分離,讀寫分離,降低讀寫針對同一表同時的壓力,至於主從同步,mysql有自帶的binlog實現 主從同步

6、explain分析sql語句,檢視執行計劃,分析索引是否用上,分析掃描行數等等

7、檢視mysql執行日誌,看看是否有其他方面的問題

個人理解:從根本上來說,查詢慢是佔用mysql記憶體比較多,那麼可以從這方面去酌手考慮

五、設計方案相關

面試還會問到一些關於設計方案相關的問題,比如

1、你的介面服務資料被人截包了,你如何防止資料惡意提交?

答:我們可以在介面傳輸引數裡面設定一個業務編號,這個編號用來區分是否重複提交。這樣即使資料被抓包了,對方也無法區分每個欄位你的含義,這時,這個業務編號的作用就來了

2、假設伺服器經常宕機,你從哪些方面去排查問題?

答:這個就留個各位看官補充了,可評論回覆

     面試技巧就補充這些,後面如果記得什麼在補充,如果有其他小夥伴有其他建議,也可以在評論回覆,其他面試問題還包括演算法、資料結構、http協議等等,這些等待大家自己去補充學習了,Spring的原理,Spring mvc的原理問的也挺多的,大家有時間可以看看之前的面試總結——高階JAVA工程(一)和面試總結——高階JAVA工程師(二)   。

總而言之該看的還是得看,還學的還是得學。再次強調,基礎很重要!面試技巧同樣很重要,還是那句話:祝願各位看官都能找到心儀的工作吧~~

    另外,奉勸大家不要頻繁跳槽,這些知識點能提升固然好,不要盲目跳槽,找工作很累的,而且沒有哪家公司喜歡頻繁跳槽的員工


相關推薦

Java高階工程師試題總結及參考答案

一、面試題基礎總結 1、 JVM結構原理、GC工作機制詳解 答:具體參照:JVM結構、GC工作機制詳解     ,說到GC,記住兩點:1、GC是負責回收所有無任何引用物件的記憶體空間。 注意:垃圾回收回收的是無任何引用的物件佔據的記憶體空間而不是物件本身,2、GC回收機制

java高階工程師試題總結

、面試題基礎總結 1、 JVM結構原理、GC工作機制詳解 答:具體參照:JVM結構、GC工作機制詳解     ,說到GC,記住兩點:1、GC是負責回收所有無任何引用物件的記憶體空間。 注意:垃圾回收回收的是無任何引用的物件佔據的記憶體空間而不是物件本身,2、GC回收機制的

一份高質量的JAVA高階開發試題總結

一般面試官都是按照自己的簡歷面試的,下面的面試題當然也是依據我自己的簡歷的一些問題總結,我是對一些架構知識比較感興趣,所以簡歷比較突出架構方面的。 別看人家問的問題很簡單,但是你不能簡單的回答的,依據自己的能力,能回答多深就多大多深。 然後就是看和麵試官的緣分

java 高階工程師試題

1、自我介紹 2、介紹你最熟悉的一個專案 3、講下這個 XSS 攻擊 4、HashMap 的結構?HashMap 、 HashTable 和 ConcurrentHashMap 的區別? 5、HashMa

Java高級工程師試題總結及參考答案

排序算法 move ner 隔離級別 這一 aid 是我 分析 操作 一、面試題基礎總結 1、 JVM結構原理、GC工作機制詳解 答:具體參照:JVM結構、GC工作機制詳解 ,說到GC,記住兩點:1、GC是負責回收所有無任何引用對象的內存空間。 註意:垃圾回收回收的

入我新美大的Java後臺開發試題總結

情況 查詢優化 做什麽 工作 我認 人的 方便 xpl 別人   靜兒最近在總結一些面試題,那是因為做什麽事情都要認真。面試也一樣,靜兒作為新美大金融部門的面試官,負責任的告訴大家,下面的問題回答不上來,面試是過不了的。不過以下絕不是原題,你會發現自己實力不過硬,最終肯定是

Java後臺開發試題總結

情況 swap sql 行數 his 本地方法棧 特性 jndi buffer 1>如何定位線上服務OOM問題  2>JVM的GC ROOTS存在於那些地方 3>mysql innodb怎樣做查詢優化 4>java cas的概念 Java服務OO

php高階工程師試題

一、mysql相關知識     1、 mysql優化方式             MYSQL 優化常用方法     &n

大廠測試工程師試題總結

一面:面試官問的面試題: 1、首先自我介紹,然後問了簡歷上熟悉的自動化測試框架的使用過程,自動化測試框架的優缺點 2、用棧實現佇列 3、資料庫的死鎖問題  4、三次握手,四次握手 5、程序執行緒的區別

大廠測試工程師試題總結-一面(附參考答案)

一面:面試官問的面試題: 1、首先自我介紹,然後問了簡歷上熟悉的自動化測試框架的使用過程,自動化測試框架的優缺點 2、用棧實現佇列 3、資料庫的死鎖問題  死鎖:是指兩個或兩個以上的程序在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去

Java開發工程師試題1

時間2019-1-2 地點上海 package service; import java.text.SimpleDateFormat; import java.util.Date; public class test1 { public static void main(String[]

Linux運維工程師-試題總結

1.linux 如何掛在 windows 下的共享目錄mount.cifs //192.168.1.3/server /mnt/server -o user=administrator,pass=123456linux 下的 server 需要自己手動建一個  後面的 use

2017 廈門初級Java開發工程師試題集錦

Java基礎 基本資料型別有哪些 包裝類有哪些 基本資料型別 包裝類 大小 範圍 預設值 byte Byte 8 -128 ~ 127 0 boolean Boolean 1 True/false False s

Python-爬蟲工程師-試題總結

1、對__if__name__ == 'main'的理解陳述__name__是當前模組名,當模組被直接執行時模組名為_main_,也就是當前的模組,當模組被匯入時,模組名就不是__main__,即程式碼將不會執行。2、python是如何進行記憶體管理的?a、物件的引用計數機制

java初級工程師試題

今天去面試了,做了份筆試題,很基礎,由於沒有關注基礎最後還是掛了。在這裡對今天的面試做一個總結以防止下一次再犯同樣的錯誤。1.寫出jsp的四個作用域     解:application,session,request,pageContext2.描述servlet的生命週期? 

Java軟體工程師試題彙總(持續更新)

1、 GC (1)jvm中一次完整的GC流程(從ygc到fgc)是怎樣的,重點講講物件如何晉升到老年代等 答:物件優先在新生代區中分配,若沒有足夠空間,Minor GC; 大物件(需要大量連續記憶體空間)直接進入老年態;長期存活的物件進入老年態。如果物件

Java初級工程師試題精選1

說明:本面試題大多都是根據《Java面試問題集》、《Java程式設計師面試寶典》、《程式設計師面試寶典》等書籍概括精選而來,其中也補充了一些自己在找工作的過程中遇到的面試題,雖然不能遍及Java的所有知識點,但絕對都是面試會問到的高頻知識點。 1.Java中的

linux運維工程師試題總結(一)

1為什麼要有swap分割槽?工作原理是什麼?  Linux核心為了提高讀寫效率與速度,會將檔案在記憶體中進行快取,這部分記憶體就是Cache Memory(快取記憶體)。即使你的程式執行結束後,Cache Memory也不會自動釋放。這就會導致你在Linux系統中程式頻繁讀

一線互聯網公司Java高級試題總結

你們 都在 tab 技術 ssg mar ger 很大的 equal 1、hashcode相等兩個類一定相等嗎?equals呢?相反呢? 2、介紹一下集合框架? 3、hashmap hastable 底層實現什麽區別?hashtable和concurrenthashtabl