主頁 > 移動端開發 > 一個Java高級工程師的面試總結,真實的面試流程與面試題與答案

一個Java高級工程師的面試總結,真實的面試流程與面試題與答案

2020-09-30 13:28:07 移動端開發

一、面試技巧

1、背熟你的簡歷

原因:面試的第一個問題,一般都是讓你簡單介紹下你自己,或者介紹一下你最近的專案,而一個面試者,如果連自己的簡歷都無法熟知,對里面提到的專案、技術都無法描述清楚的話,我想沒有哪家公司會接受這樣的,哪怕你是超級人才,你自我表述不行,估計也會為此頭疼,所以,切記:一定要背好自己的簡歷,不要求你能全部記下,至少要熟記你最近所待過的兩家公司,這兩家公司里面你做過的專案,你負責的模塊,專案里面用到的技術以及相對應的技術實作方案(這個尤為重要),

由于文章篇幅限制,不可能將所有面試題以文字形式把大廠面試題展示出來,本篇為大家精選了一些面試題,如果你需要這份完整版的面試筆記,獲取面試資料只需:點擊這里領取!!! 暗號:CSDN
在這里插入圖片描述

2、深入了解并熟記部分Java基礎知識

原因:大部分公司無論面試初級還是高級,無論是筆試還是面試,都會問到一系列基礎題,這些基礎題大概涵括jvm、字串、集合、執行緒等等,如果說每一個讓你死記硬背你肯定記不住,那么就是理解中記憶了,拿jvm來說 ,如果讓你談談你對jvm的理解, 那么你首先得知道JVM有哪些結構組成,每個結構用來做什么的,然后考慮一個Java物件從創建到回收,如何途徑JVM這些結構的,如果你從這些方面來綜合記憶,相信事半功倍,并且你理解的更透徹,

至于如果讓你談集合,舉例List集合下面ArryList、LinkedList、Vector等集合的區別,那么同樣的方法,你需要理解每一個的結構組成是什么,你才能知道他有什么作用,這樣你在平時的用法上會更精煉,而且在面試程序中,也不至于啞口無言,

3、保持自信心和沉重冷靜的心態

原因:面試程序中,自信是少不了的,相信你可以, 面試的路上可以自己對自己說一句: I belive I can ! 反正我就是這么做的,自我的心里暗示吧,其實面對面試官的時候,你自信的狀態也會讓面試官覺得你是個很有底氣的人,至少從感覺上會給你打個高分,

另外還有就是保持沉重冷靜,如果是讓你提供技術方案或者說說某個技術原理,沒必要一緊張一咕嚕的什么都說,你可以對面試官說:我先想想,然后自己組裝記憶中的知識,組裝下語言,有條理的說出來,這樣能更好的表現你的才能,不是嗎? 面試誰都會緊張,我也會緊張,有時候明明記得的知識點忘了,沒關系,大膽的說忘了,或者直接說不知道, 要記住,有部分不知道沒關系,如果全都知道,那你應該是CTO級別了(開個玩笑),

4、盡量記住面試程序中你回答不出來或者存在不妥的問題

原因:面試失敗了沒關系,畢竟每個公司的要求不一樣,問的問題和你擅長的方面可能有所出入,但是請記住一點:面試程序中那些你回答不出來問題,或者你自己感徑訓答不太準確的問題,自己記下來,如果不會的,你可以當場問問面試官有沒有好的解答,如果面試官不愿意告訴你(一般是基礎方面面試官就懶得答你),那么你就自己回家慢慢查資料,如果是某些特定的技術,也可以自己寫寫案例什么的,畢竟知識點就那么多,問題百變,原理不變,面試也是一個學習知識的程序,讓你了解大部分公司目前需要或者要求的技術,這次不知道,下次就知道了,

5、去面試之前,最好先了解你要去面試公司的情況

原因:俗話說,知己知彼,百戰不殆,面試就是一場戰斗,你需要了解你面試公司基本情況,包括崗位要求,這樣你就能大概知道你需要面試的這家公司的技術要求情況, 為何讓你去了解這家公司的主營產品和專案呢,就是讓你大概了解這家公司的一個技術架構的情況,包括你可能對他們的一種實作方式提出質疑和疑惑,相信面試官很愿意幫你解答這些問題的,這樣你既圖了表現,也學到了知識,何樂而不為,

6、合理安排你的面試時間

原因:估計很多人都不理解這個,可能大部分的人對于如何安排面試時間比較迷茫,隨意安排,可是這里有個技巧,如果同時有多個面試機會,你把你最想去的公司放到最末尾去面試,這樣你經歷過了前面的這些公司篩選,如果成功了是個機會,如果沒成功,也是為最后做鋪墊,

不過這里就需要考慮兩點:1、你需要記住你投簡歷的公司和基本情況(這說明你不是海投的) 2、如果記不住,那么可以先應答一個時間,后續了解公司資訊之后,通過郵件或者其他方式與其約定,調整面試時間,而且建議安排一天的面試公司不要超過兩家,最好的是上午一家,下午一家,這樣你能有充足的時間調整狀態,

二、面試題基礎總結

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、資料庫存盤日期格式時,如何考慮時區轉換問題?

答:使用TimeStamp , 原因參照:Java編程中遇到的時區轉換問題,

6、JavaObject類中有哪些方法?

答:Object有哪些方法,

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

答:淺談HTTP中GET和POST的區別,

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

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

答:關于SimpleDateFormat安全的時間格式化執行緒安全問題,

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

答:1、設計模式有神馬用2、觀察者模式類圖及實作,

3、集群環境中,session如何實作共享

答:1、Java集群之session共享2、session多服務器共享方案,還有一種方案就是使用一個固定的服務器專門保持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、假設服務器經常宕機,你從哪些方面去排查問題?

答:這個就留個各位看官補充了,

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

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

五、Java程式員跳槽應該學哪些方面的技術

互聯網產品、大型企業級專案常會用到的:

1.并發處理技術,

具體到Java上通常是涉及java.util.concurrent、并發鎖機制、NIO等方面,當然最近比較火爆的Netty框架也可以作為高并發處理的備選方案之一,這需要對Java的執行緒調度機制有著比較深的理解,不過這些可能會涉及并發控制的物件(比如reentrantlock等)只能存在于一個JVM里的問題,一旦系統規模大到需要部署多個JVM來處理并發的情況,則需要采用共享session的技術(比如spring-session),或者盡可能將系統后臺設計為無狀態的服務,這需要對RESTful有著較深的理解,

2.高可用、負載均衡技術,

互聯網產品、企業級應用通常要求一年里的Downtime控制在很小的范圍內,這需要足夠的高可用和負載均衡架構來支撐,這個一般和Java技術本身沒太大關系,但卻是一名初級程式員向高級程式員甚至是架構師CIO進階的必備技術,因此可以適當了解一下Nginx、HAProxy等對這方面的支持,另外現在最“時髦”的做法是將應用docker化,配合ETCD、kubernetes等工具在容器的層面上實作高可用和負載均衡,當然這需要看實際的需求,最時髦的不見得是最適用的,要考慮構建成本,

3.快取技術,

快取應該是大型系統中或高并發條件下提高回應速度的亙古不變的真理(雖然也看到過淘寶搜索商品功能采用的大資料處理技術實作的零快取的文章,但能達到淘寶的體量和技術水平一般不太可能),這方面的工具太多了,ehcache、memcached、redis……從Java的角度來講,需要了解的一是Java對這些工具的連接器,二是快取技術背后的JSR-107標準,可以參考spring-cache的實作,閱讀一下原始碼加深理解,

4.異步處理技術,

這通常也是抵消高并發的處理手段之一,從Java的角度看最簡單的異步處理就是新啟動一個異步執行緒,這同樣也需要對Java的執行緒調度有所了解,當然也可使用Spring中的@Async之類的也可以簡單實作異步執行緒的處理,如果是非常消耗資源的業務處理,簡單的異步執行緒是滿足不了需求的,這就需要一些訊息中間件來做這些異步處理了,訊息中間件有很多,activemq、rabbitmq、kafka……需要了解的是Java對這些中間件的連接器,不過異步處理中最關鍵的是事務保證的問題,這可能需要對事務的兩步提交有所了解,

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/142176.html

標籤:其他

上一篇:從“無影”看云電腦的未來

下一篇:Vue 仿釘釘流程圖(流程節點繪制 vue+Ant【如果用其他UI庫需要替換幾個組件】 附 demo)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more