{eval=Array;=+count(Array);}

亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

問答專欄Q & A COLUMN

兩年的java工作經(jīng)驗,面試時會被問到些什么問題?

ScliangScliang 回答0 收藏1
收藏問題

10條回答

neu

neu

回答于2022-06-28 14:10

java程序都會被問到的面試問題,月薪20k+

多線程相關(guān)問題

  1. 實現(xiàn)多線程有哪些方式?有什么異同?
  2. 線程的生命周期
  3. 線程池常用的有哪些?
  4. 線程池的工作原理
  5. 如何啟動和銷毀線程
  6. 什么是線程死鎖
  7. 悲觀鎖和樂觀鎖,公平鎖和非公平鎖

Java集合原理

  1. 集合的類圖
  2. 集合的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)
  3. 集合的效率
  4. 集合的遍歷

JVM虛擬機

  1. java的內(nèi)存模型是什么樣的
  2. jvm內(nèi)存分為哪些區(qū)域
  3. 內(nèi)存溢出有些類型,如何解決
  4. 垃圾回收器有哪些
  5. 垃圾回收算法有哪些
  6. jvm常用的參數(shù)
  7. 如何定位分析jvm線上問題
  8. 有哪些分析jvm的工具

數(shù)據(jù)庫

  1. 索引的分類
  2. 索引的優(yōu)化
  3. 索引的原理
  4. 事物的類型
  5. 聯(lián)合查詢,子查詢效率問題
  6. 如何實現(xiàn)讀寫分離

框架類

  1. spring(aop,依賴注入)
  2. springmvc(原理)
  3. dubbo(原理,支持哪些協(xié)議)
  4. mybites(原理,常用的配置)

算法類

  1. 常見排序原理和實現(xiàn)(8種)
  2. 求二叉樹的高度
  3. 二叉樹的遍歷
  4. 平衡二叉樹和紅黑樹
  5. b樹,b+樹
  6. 遞歸和分治思想
  7. 貪婪算法

linux服務(wù)器

  1. 你常用的linux命令有哪些
  2. linux權(quán)限系統(tǒng)
  3. 如何寫tomcat重啟腳本
  4. 如何用命令搜索日志,分析日志

web服務(wù)器

  1. nginx配置反向代理
  2. nginx配置負(fù)載均衡(哪幾種)
  3. apache配置反向代理
  4. tomcat參數(shù)調(diào)優(yōu)

項目

  1. 你認(rèn)為做的最有成就的一個項目
  2. 你在這個項目中負(fù)責(zé)什么內(nèi)容
  3. 遇到了哪些難點,如何解決的
  4. 你認(rèn)為這個項目還有哪些改進(jìn)的地方,為什么這么做
那如果有感興趣老友們想要獲取完整面試題的呢...可以去我的主頁看看我的面試文章,也可以私信我【面試】獲取,很開心能分享給大家!

我的很多文章都有分享各種架構(gòu)資料,相信對于已經(jīng)工作和遇到技術(shù)瓶頸或者寫博客碼友,在我的主頁一定都有你需要的內(nèi)容。

評論0 贊同0
  •  加載中...
mingde

mingde

回答于2022-06-28 14:10

兩年的java經(jīng)驗, 找工作時候簡歷就要實事求是, 匹配一些基礎(chǔ)的java研發(fā)崗位去面試, 如果平時內(nèi)功修煉的到位, 拿下一個offer應(yīng)該不成問題。

1、會問你科班基礎(chǔ): 操作系統(tǒng)知識, 數(shù)據(jù)庫原理、數(shù)據(jù)結(jié)構(gòu)、以及軟件工程相關(guān)的測試, 流程之類知識。

2、會問你java涉及到的基礎(chǔ)知識: OO基礎(chǔ), 常見類庫用法, 常見類的區(qū)別, 優(yōu)點和缺點。

3、會問你一般問題的解決方法: 如登錄流程, 數(shù)據(jù)庫不重名的方法, 文件讀取或者處理的方法。這些都是平時應(yīng)該積累的。

4、會問你一些算法的定義和區(qū)別, 可以參考一下:hihocoder.com/problemset

5、闡述問題的時候,盡量不要教科書式, 白話形式。

6、數(shù)據(jù)庫方面:關(guān)系數(shù)據(jù)庫各個范式的目的, 主鍵,索引,規(guī)則,PS,triger這些也要了解下用法。

7、能用常見BS框架做過小東西:ssh,ssi等, 能說出mvc,切面等內(nèi)容。

8、記?。?不懂千萬不要裝懂亂說,態(tài)度要誠懇, 面試官看你求知欲強, 態(tài)度誠懇,也就喜歡和你聊下去, 就會有好印象。

9、面試過程不要有壓力, 也不要為不能回答問題就擔(dān)憂, 多面試總結(jié)也是提升自己的一種手段。

評論0 贊同0
  •  加載中...
tomener

tomener

回答于2022-06-28 14:10

一般兩年的工作經(jīng)驗,技術(shù)上不會了解得很深,有一些項目經(jīng)驗,面試官更看重的應(yīng)該是你的java基礎(chǔ)理論的理解和項目經(jīng)歷的理解。

一般兩年的工作經(jīng)驗,java技術(shù)上的面試可能從以下方面可以去復(fù)習(xí):

1、java基礎(chǔ)知識(包括java集合、java異常、IO與NIO,同步與異步,阻塞與非阻塞)

2、spring

3、mybaits

4、mysql(特別是索引相關(guān)的)

5、dubbo

6、jvm以及垃圾回收機制

7、簡單的排序算法(冒泡排序、快速排序、選擇排序、插入排序等等)以及他們的時間復(fù)雜度

高級一點的東西,可能就涉及到分布式和消息隊列,多線程以及鎖處理的高并發(fā)方面的知識,但是以上是比較基本的,一般都會問到,所以面試前要有一個好好的準(zhǔn)備過程。

然后項目經(jīng)驗上,對自己做過的項目,一定要有一個項目,你非常熟悉整個過程,了解整個系統(tǒng)的運轉(zhuǎn),這個也是面試官比價看重的一塊,畢竟兩年的工作經(jīng)驗,項目經(jīng)驗肯定要有一定的積累的,雖然我們技術(shù)上由于工作經(jīng)驗的原因不能做的很深,但是項目,我們是經(jīng)歷過幾個月甚至是一兩年的,你得有自己的理解,最好,對你們系統(tǒng)能夠提出改進(jìn)的意見或者建議那是最好不過的了,這樣肯定是很大的加分項,面試官覺得會對你刮目相看的。
另外,在分布式和消息隊列,多線程以及鎖處理的高并發(fā)這方面需要了解更深的同學(xué),可以關(guān)注一下我的微信公眾號“我的個人記事”,個人有視頻資料可以奉獻(xiàn),并且后續(xù)會繼續(xù)更新。

評論0 贊同0
  •  加載中...
hatlonely

hatlonely

回答于2022-06-28 14:10

兩年的java經(jīng)驗, 找工作時候簡歷就要實事求是, 匹配一些基礎(chǔ)的java研發(fā)崗位去面試, 如果平時內(nèi)功修煉的到位, 拿下一個offer應(yīng)該不成問題。

1、會問你科班基礎(chǔ): 操作系統(tǒng)知識, 數(shù)據(jù)庫原理、數(shù)據(jù)結(jié)構(gòu)、以及軟件工程相關(guān)的測試, 流程之類知識。

2、會問你java涉及到的基礎(chǔ)知識: Java基礎(chǔ), 常見類庫用法, 常見類的區(qū)別, 優(yōu)點和缺點。

3、會問你一般問題的解決方法: 如登錄流程, 數(shù)據(jù)庫不重名的方法, 文件讀取或者處理的方法。這些都是平時應(yīng)該積累的。

4、會問你一些算法的定義和區(qū)別, 可以參考一下:hihocoder.com/problemset

5、闡述問題的時候,盡量不要教科書式, 白話形式。

6、數(shù)據(jù)庫方面:關(guān)系數(shù)據(jù)庫各個范式的目的, 主鍵,索引,規(guī)則,PS,triger這些也要了解下用法。

7、能用常見BS框架做過小東西:ssh,ssi等, 能說出mvc,切面等內(nèi)容。

8、記?。?strong> 不懂千萬不要裝懂亂說,態(tài)度要誠懇, 面試官看你求知欲強, 態(tài)度誠懇,也就喜歡和你聊下去, 就會有好印象。

9、面試過程不要有壓力, 也不要為不能回答問題就擔(dān)憂, 多面試總結(jié)也是提升自己的一種手段。

2021年很多公司都在問黑紅樹,數(shù)據(jù)結(jié)構(gòu)與算法一定要看哦~

尚硅谷Java大廠面試題第3季,跳槽必刷題目+必掃技術(shù)盲點(周陽主講)_嗶哩嗶哩_bilibili

https://www.bilibili.com/video/BV1Hy4y1B78T?

尚硅谷Java大廠面試題第2季,面試必刷,跳槽大廠神器_嗶哩嗶哩_bilibili

https://www.bilibili.com/video/BV18b411M7xz?

尚硅谷經(jīng)典Java面試題第一季(java面試精講)_嗶哩嗶哩_bilibili

https://www.bilibili.com/video/BV1Eb411P7bP?

強烈推薦一個網(wǎng)站:

Java面試題-幫助你通過Java面試 (zwmst.com)

https://zwmst.com/


兩年 java 的面試過程中遇到了很多挑戰(zhàn),也遇到了一些不談技術(shù)的公司,從上面的面試題可以看出,目前對于 java 的要求越來越高,水漲船高,畢竟這個行業(yè)的人數(shù)越來越多,而保持自己的競爭力的唯一方法就是找對方向,不斷學(xué)習(xí),注意這里我提到的第一點是方向,然后才是學(xué)習(xí)。給自己制定一個職業(yè)規(guī)劃,按照這個路線往前走,我其實還在想分布式微服務(wù)這塊以后再深入學(xué)習(xí),可是按照市場要求,現(xiàn)在已經(jīng)刻不容緩了,一些技術(shù)架構(gòu)比如:springcloud、duboo 都得保持學(xué)習(xí),這樣才能有競爭力!作為一名兩年的 javaSir,你必須具備以下技能

閱讀源碼的能力,多用 Intelj idea 這個開發(fā)工具,而不是 eclipse。它是直接支持反編譯 class 文件的,多讀 jdk 源碼,吸收優(yōu)秀的源碼并加以復(fù)用

做到能夠手寫常見的排序算法,比如快速排序和堆排序、冒泡排序、選擇排序、二分查找這些都是必須的

對 java 的框架有很深入的認(rèn)識,現(xiàn)在基本流行的 ssm 框架很多人都會,可是知道一些原理的人就不多了,得不斷研究這些框架本身,它們都是經(jīng)過無數(shù)次錘煉 出來的優(yōu)秀框架

多用 redismongodb,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫已經(jīng)無法市場需求了,這些東西也是面試中的一部分,雖不是重點,但也是加分的選項

對于微服務(wù)和分布式,這個是有一定難度的,我在面試人人車的時候,一面很順利,二面被技術(shù)總監(jiān)給 pass 了,問題就是分布式不是特別熟悉!要想進(jìn)入好的互聯(lián)網(wǎng)公司,分布式和微服務(wù)是很必須的

評論0 贊同0
  •  加載中...
TesterHome

TesterHome

回答于2022-06-28 14:10


當(dāng)我刷到這條脈脈的時候,想到當(dāng)年老板面試我的時候,拿多線程問題虐我時,想想當(dāng)時太難了。


悄悄給大家看幾道ucloud必問的面試題,測測能完美的回答幾道呢?

1. 有沒有一種一定能保證線程安全的代碼寫法?(偷偷告訴你,真的有?。?/p>

2. 多個線程如何保持A1B2C3等順序交替輸出?

3. synchronized volatile的CPU原語是如何實現(xiàn)的?

4. 無鎖、偏向鎖、輕量級鎖、重量級鎖有什么差別?

5. 如何正確的啟動和停止一個線程?

6. 線程和纖程的區(qū)別的是什么?為什么纖程比較輕量級?

7. ThreadLocal有沒有內(nèi)存泄漏的問題?為什么?

8. 下列三種業(yè)務(wù),應(yīng)該如何使用線程池:

高并發(fā)、任務(wù)執(zhí)行時間短

并發(fā)不高、任務(wù)執(zhí)行時間長

并發(fā)高、業(yè)務(wù)執(zhí)行時間長


網(wǎng)上搜羅一堆答案,各式各樣,唉!??!

如果你平時只有CRUD的經(jīng)驗,不了解多線程與高并發(fā),面對這樣面試題,大概率一頭霧水。

如果你真是這樣,要想走到架構(gòu)師的級別,不啃下高并發(fā)這塊硬骨頭是非常難的。

那么“高并發(fā)”到底該如何學(xué)呢?

不用害怕,我們?yōu)槟憔臏?zhǔn)備了高并發(fā)專題課,帶你將多線程的知識系統(tǒng)化,幫助你理解多線程在CPU層級的實現(xiàn),以及這些實現(xiàn)如何一層一層的映射到那些上億用戶,千萬QPS,百萬TPS的系統(tǒng)。

怎么樣,是不是超級酷?當(dāng)然如果你還學(xué)的不過癮的話,我們Java全棧課程也是相當(dāng)充實的,還會你手把手進(jìn)行大型互聯(lián)網(wǎng)電商項目實戰(zhàn)演練,讓你充分將每個知識點融入實際的操作中。

課程主理人是知名院校教學(xué)總監(jiān)吳剛老師,擁有數(shù)十年IT行業(yè)教學(xué)經(jīng)驗,曾任職大型互聯(lián)網(wǎng)公司首席架構(gòu)師,主導(dǎo)過多個高并發(fā)項目,其電商項目曾在雙十一活動中承載過億的瀏覽量和成交量。他的專業(yè)素養(yǎng)與實戰(zhàn)經(jīng)驗將為課程注入豐富的趣味和營養(yǎng)!

課呱呱,愛她(IT)就上課呱呱,IT小白變專家,課呱呱能幫你實現(xiàn)!

評論0 贊同0
  •  加載中...
Shihira

Shihira

回答于2022-06-28 14:10

理論上來說,兩年工作經(jīng)驗的情況下,一般會問些基礎(chǔ)知識,常用的開發(fā)框架,是不是碰到過一些問題,如何解決的,在之前開發(fā)的項目中是什么角色和負(fù)責(zé)什么,數(shù)據(jù)庫的相關(guān)知識,這些一般都是從比較簡單的基礎(chǔ)問起,然后慢慢會提一些高級點的內(nèi)容,如實作答就好,沒接觸過直接說就行了,沒必要編。當(dāng)然,也會問一些高級的問題,比如分布式等等這樣的問題。這樣的問題主要是看平時是否接觸過,或者學(xué)習(xí)過。

一般都是考察基礎(chǔ)知識,常用的框架是否熟悉,看看是不是可以直接上手做開發(fā)。新知識新理念是看下有沒有學(xué)習(xí)的欲望和學(xué)習(xí)能力。

希望對你有幫助,謝謝。

評論0 贊同0
  •  加載中...
jubincn

jubincn

回答于2022-06-28 14:10

在上周,我密集面試了若干位Java后端的候選人,工作經(jīng)驗在3到5年間。我的標(biāo)準(zhǔn)其實不復(fù)雜:第一能干活,第二Java基礎(chǔ)要好,第三最好熟悉些分布式框架。我相信其它公司招初級開發(fā)時,應(yīng)該也照著這個標(biāo)準(zhǔn)來面的。

我也知道,不少候選人能力其實不差,但面試時沒準(zhǔn)備或不會說,這樣的人可能在進(jìn)團(tuán)隊干活后確實能達(dá)到期望,但可能就無法通過面試,但面試官總是只根據(jù)面試情況來判斷。

但現(xiàn)實情況是,大多數(shù)人可能面試前沒準(zhǔn)備,或準(zhǔn)備方法不得當(dāng)。要知道,我們平時干活更偏重于業(yè)務(wù),不可能大量接觸到算法,數(shù)據(jù)結(jié)構(gòu),底層代碼這類面試必問的問題點,換句話說,面試準(zhǔn)備點和平時工作要點匹配度很小。

作為面試官,我只能根據(jù)候選人的回答來決定面試結(jié)果。不過,與人方便自己方便,所以我在本文里,將通過一些常用的問題來介紹面試的準(zhǔn)備技巧。大家在看后一定會感嘆:只要方法得當(dāng),準(zhǔn)備面試第一不難,第二用的時間也不會太多。

別讓人感覺你只會山寨別人的代碼

框架是重點,但別讓人感覺你只會山寨別人的代碼!在面試前,我會閱讀簡歷以查看候選人在框架方面的項目經(jīng)驗,在候選人的項目介紹的環(huán)節(jié),我也會著重關(guān)注候選人最近的框架經(jīng)驗,目前比較熱門的是SSM。

不過,一般工作在5年內(nèi)的候選人,大多僅僅是能“山寨”別人的代碼,也就是說能在現(xiàn)有框架的基礎(chǔ)上,照著別人寫的流程,擴展出新的功能模塊。比如要寫個股票掛單的功能模塊,是會模仿現(xiàn)有的下單流程,然后從前端到后端再到數(shù)據(jù)庫,依樣畫葫蘆寫一遍,最多把功能相關(guān)的代碼點改掉。

其實我們每個人都這樣過來的,但在面試時,如果你僅僅表現(xiàn)出這樣的能力,就和大多數(shù)人的水平差不多了,在這點就沒法體現(xiàn)出你的優(yōu)勢了。

我們知道,如果單純使用SSM框架,大多數(shù)項目都會有痛點。比如數(shù)據(jù)庫性能差,或者業(yè)務(wù)模塊比較復(fù)雜,并發(fā)量比較高,用Spring MVC里的Controller無法滿足跳轉(zhuǎn)的需求。所以我一般還會主動問:你除了依照現(xiàn)有框架寫業(yè)務(wù)代碼時,還做了哪些改動?

我聽到的回答有:增加了Redis緩存,以避免頻繁調(diào)用一些不變的數(shù)據(jù)?;蛘撸贛yBitas的xml里,select語句where條件有isnull,即這個值有就增加一個where條件,對此,會對任何一個where增加一個不帶isnull的查詢條件,以免該語句當(dāng)傳入?yún)?shù)都是null時,做全表掃描?;蛘撸纱嗾f,后端異步返回的數(shù)據(jù)量很大,時間很長,我在項目里就調(diào)大了異步返回的最大時間,或者對返回信息做了壓縮處理,以增加網(wǎng)絡(luò)傳輸性能。

對于這個問題,我不在乎聽到什么回答,我只關(guān)心回答符不符邏輯。一般只要答對,我就會給出“在框架層面有自己的體會,有一定的了解”,否則,我就只會給出“只能在項目經(jīng)理帶領(lǐng)下編寫框架代碼,對框架本身了解不多”。

其實,在準(zhǔn)備面試時,歸納框架里的要點并不難,我就不信所有人在做項目時一點積累也沒,只要你說出來,可以說,這方面你就碾壓了將近7成的競爭者。

單機版夠用?適當(dāng)了解些分布式

別單純看單機版的框架,適當(dāng)了解些分布式!此外,在描述項目里框架技術(shù)時,最好你再帶些分布式的技術(shù)。下面我列些大家可以準(zhǔn)備的分布式技術(shù)。

1、反向代理方面,nginx的基本配置,比如如何通過lua語言設(shè)置規(guī)則,如何設(shè)置session粘滯。如果可以,再看些nginx的底層,比如協(xié)議,集群設(shè)置,失效轉(zhuǎn)移等。

2、遠(yuǎn)程調(diào)用dubbo方面,可以看下dubbo和zookeeper整合的知識點,再深一步,了解下dubbo底層的傳輸協(xié)議和序列化方式。

3、消息隊列方面,可以看下kafka或任意一種組件的使用方式,簡單點可以看下配置,工作組的設(shè)置,再深入點,可以看下Kafka集群,持久化的方式,以及發(fā)送消息是用長連接還是短攔截。

以上僅僅是用3個組件舉例,大家還可以看下Redis緩存,日志框架,MyCAT分庫分表等。準(zhǔn)備的方式有兩大類,第一是要會說怎么用,這比較簡單,能通過配置文件搭建成一個功能模塊即可,第二是可以適當(dāng)讀些底層代碼,以此了解下協(xié)議,集群和失效轉(zhuǎn)移之類的高級知識點。

如果能在面試中侃侃而談分布式組件的底層,那么得到的評價就會比較好了,比如“深入了解框架底層”,或“框架經(jīng)驗豐富”,這樣就算去面試架構(gòu)師也行了,更何況是高級開發(fā)。

別就知道增刪改查,得了解性能優(yōu)化

數(shù)據(jù)庫方面,別就知道增刪改查,得了解性能優(yōu)化!在實際項目里,大多數(shù)程序員用到的可能僅僅是增刪改查,當(dāng)我們用Mybatis時,這個情況更普遍。不過如果你面試時也這樣表現(xiàn),估計你的能力就和其它競爭者差不多了。

這方面,你可以準(zhǔn)備如下的技能:

1、SQL高級方面,比如group by, having,左連接,子查詢(帶in),行轉(zhuǎn)列等高級用法。

2、建表方面,你可以考慮下,你項目是用三范式還是反范式,理由是什么?

3、尤其是優(yōu)化,你可以準(zhǔn)備下如何通過執(zhí)行計劃查看SQL語句改進(jìn)點的方式,或者其它能改善SQL性能的方式(比如建索引等)。

4、如果你感覺有能力,還可以準(zhǔn)備些MySQL集群,MyCAT分庫分表的技能。比如通過LVS+Keepalived實現(xiàn)MySQL負(fù)載均衡,MyCAT的配置方式。同樣,如果可以,也看些相關(guān)的底層代碼。

哪怕你在前三點表現(xiàn)一般,那么至少也能超越將近一般的候選人,尤其當(dāng)你在SQL優(yōu)化方面表現(xiàn)非常好,那么你在面試高級開發(fā)時,數(shù)據(jù)庫層面一定是達(dá)標(biāo)的,如果你連第四點也回答非常好,那么恭喜你,你在數(shù)據(jù)庫方面的能力甚至達(dá)到了初級架構(gòu)的級別。

圍繞數(shù)據(jù)結(jié)構(gòu)和性能優(yōu)化準(zhǔn)備面試題

Java核心方面,圍繞數(shù)據(jù)結(jié)構(gòu)和性能優(yōu)化準(zhǔn)備面試題!Java核心這塊,網(wǎng)上的面試題很多,不過在此之外,大家還應(yīng)當(dāng)著重關(guān)注集合(即數(shù)據(jù)結(jié)構(gòu))和多線程并發(fā)這兩塊,在此基礎(chǔ)上,大家可以準(zhǔn)備些設(shè)計模式和虛擬機的說辭。

下面列些我一般會問的部分問題:

  • String a = "123"; String b = "123"; a==b的結(jié)果是什么?這包含了內(nèi)存,String存儲方式等諸多知識點。
  • HashMap里的hashcode方法和equal方法什么時候需要重寫?如果不重寫會有什么后果?對此大家可以進(jìn)一步了解HashMap(甚至ConcurrentHashMap)的底層實現(xiàn)。
  • ArrayList和LinkedList底層實現(xiàn)有什么差別?它們各自適用于哪些場合?對此大家也可以了解下相關(guān)底層代碼。
  • volatile關(guān)鍵字有什么作用?由此展開,大家可以了解下線程內(nèi)存和堆內(nèi)存的差別。
  • CompletableFuture,這個是JDK1.8里的新特性,通過它怎么實現(xiàn)多線程并發(fā)控制?
  • JVM里,new出來的對象是在哪個區(qū)?再深入一下,問下如何查看和優(yōu)化JVM虛擬機內(nèi)存。
  • Java的靜態(tài)代理和動態(tài)代理有什么差別?最好結(jié)合底層代碼來說。

通過上述的問題點,我其實不僅僅停留在“會用”級別,比如我不會問如何在ArrayList里放元素。大家可以看到,上述問題包含了“多線程并發(fā)”,“JVM優(yōu)化”,“數(shù)據(jù)結(jié)構(gòu)對象底層代碼”等細(xì)節(jié),大家也可以舉一反三,通過看一些高級知識,多準(zhǔn)備些其它類似面試題。

我們知道,目前Java開發(fā)是以Web框架為主,那么為什么還要問Java核心知識點呢?我這個是有切身體會的。

之前在我團(tuán)隊里,我見過兩個人,一個是就會干活,具體表現(xiàn)是會用Java核心基本的API,而且也沒有深入了解的意愿(估計不知道該怎么深入了解),另一位平時專門會看些Java并發(fā),虛擬機等的高級知識。過了半年以后,后者的能力快速升級到高級開發(fā),由于對JAVA核心知識點了解很透徹,所以看一些分布式組件的底層實現(xiàn)沒什么大問題。而前者,一直在重復(fù)勞動,能力也只一直停留在“會干活”的層面。

而在現(xiàn)實的面試中,如果不熟悉Java核心知識點,估計升高級開發(fā)都難,更別說是面試架構(gòu)師級別的崗位了。

至少了解如何看日志排查問題

Linux方面,至少了解如何看日志排查問題!如果候選人能證明自己有“排查問題”和“解決問題”的能力,這絕對是個加分項,但怎么證明?

目前大多數(shù)的互聯(lián)網(wǎng)項目,都是部署在Linux上,也就是說,日志都是在Linux,下面歸納些實際的Linux操作。

1、能通過less命令打開文件,通過Shift+G到達(dá)文件底部,再通過?+關(guān)鍵字的方式來根據(jù)關(guān)鍵來搜索信息。

2、能通過grep的方式查關(guān)鍵字,具體用法是, grep 關(guān)鍵字 文件名,如果要兩次在結(jié)果里查找的話,就用grep 關(guān)鍵字1 文件名 | 關(guān)鍵字2 --color。最后--color是高亮關(guān)鍵字。

3、能通過vi來編輯文件。

4、能通過chmod來設(shè)置文件的權(quán)限。

當(dāng)然,還有更多更實用的Linux命令,但在實際面試過程中,不少候選人連一條linux命令也不知道。還是這句話,你哪怕知道些很基本的,也比一般人強了。

通讀一段底層代碼,作為加分項

如何證明自己對一個知識點非常了解?莫過于能通過底層代碼來說明。我在和不少工作經(jīng)驗在5年之內(nèi)的程序員溝通時,不少人認(rèn)為這很難?確實,如果要通過閱讀底層代碼了解分布式組件,那難度不小,但如果如下部分的底層代碼,并不難懂。

1、ArrayList,LinkedList的底層代碼里,包含著基于數(shù)組和鏈表的實現(xiàn)方式,如果大家能以此講清楚擴容,“通過枚舉器遍歷“等方式,絕對能證明自己。

2、HashMap直接對應(yīng)著Hash表這個數(shù)據(jù)結(jié)構(gòu),在HashMap的底層代碼里,包含著hashcode的put,get等的操作,甚至在ConcurrentHashMap里,還包含著Lock的邏輯。我相信,如果大家在面試中,看看而言ConcurrentHashMap,再結(jié)合在紙上邊說邊畫,那一定能征服面試官。

3、可以看下靜態(tài)代理和動態(tài)代理的實現(xiàn)方式,再深入一下,可以看下Spring AOP里的實現(xiàn)代碼。

4、或許Spirng IOC和MVC的底層實現(xiàn)代碼比較難看懂,但大家可以說些關(guān)鍵的類,根據(jù)關(guān)鍵流程說下它們的實現(xiàn)方式。

其實準(zhǔn)備的底層代碼未必要多,而且也不限于在哪個方面,比如集合里基于紅黑樹的TreeSet,基于NIO的開源框架,甚至分布式組件的Dubbo,都可以準(zhǔn)備。而且準(zhǔn)備時未必要背出所有的底層(事實上很難做到),你只要能結(jié)合一些重要的類和方法,講清楚思路即可(比如講清楚HashMap如何通過hashCode快速定位)。

那么在面試時,如何找到個好機會說出你準(zhǔn)備好的上述底層代碼?在面試時,總會被問到集合,Spring MVC框架等相關(guān)知識點,你在回答時,順便說一句,“我還了解這塊的底層實現(xiàn)”,那么面試官一定會追問,那么你就可以說出來了。

不要小看這個對候選人的幫助,一旦你講了,只要意思到位,那么最少能得到個“肯積極專業(yè)“的評價,如果描述很清楚,那么評價就會升級到“熟悉Java核心技能(或Spring MVC),且基本功扎實”。要知道,面試中,很少有人能講清楚底層代碼,所以你拋出了這個話題,哪怕最后沒達(dá)到預(yù)期效果,面試官也不會由此對你降低評價。所以說,準(zhǔn)備這塊絕對是“有百利而無一害”的掙錢買賣。

把上述技能嵌入到你做過的項目里

一切的一切,把上述技能嵌入到你做過的項目里!在面試過程中,我經(jīng)常會聽到一些比較遺憾的回答,比如候選人對SQL優(yōu)化技能講得頭頭是道,但最后得知,這是他平時自學(xué)時掌握的,并沒用在實際項目里。

當(dāng)然這總比不說要好,所以我會寫下“在平時自學(xué)過SQL優(yōu)化技能”,但如果在項目里實踐過,那么我就會寫下“有實際數(shù)據(jù)庫SQL優(yōu)化的技能”。大家可以對比下兩者的差別,一個是偏重理論,一個是直接能干活了。其實,很多場景里,我就不信在實際項目里一定沒有實踐過SQL優(yōu)化技能。

從這個案例中,我想告訴大家的是,你之前費了千辛萬苦(其實方法方向得到,也不用費太大精力)準(zhǔn)備的很多技能和說辭,最后應(yīng)該落實到你的實際項目里。

比如你有過在Linux日志里查詢關(guān)鍵字排查問題的經(jīng)驗,在描述時你可以帶一句,在之前的項目里我就這樣干的。又如,你通過看底層代碼,了解了TreeSet和HashSet的差別以及它們的適用范圍,那么你就可以回想下你之前做的項目,是否有個場景僅僅適用于TreeSet?如果有,那么你就可以適當(dāng)描述下項目的需求,然后說,通過讀底層代碼,我了解了兩者的差別,而且在這個實際需求里,我就用了TreeSet,而且我還專門做了對比性試驗,發(fā)現(xiàn)用TreeSet比HashSet要高xx個百分點。

請記得,“實踐經(jīng)驗”一定比“理論經(jīng)驗”值錢,而且大多數(shù)你知道的理論上的經(jīng)驗,一定在你的項目里用過。所以,如果你僅僅讓面試官感覺你只有“理論經(jīng)驗”,那就太虧了。

這里根據(jù)自身的實際經(jīng)歷,整理了一份面試這些大廠的2020-2021 最新整理的 Java 面試題,希望能幫助到大家查漏補缺,攻克面試難關(guān)。

題庫非常全面,包括 Java 集合、JVM、多線程、Spring全家桶、Redis、Dubbo、Netty、Elasticsearch、ucloud巴巴等大廠面試題等。

部分面試題預(yù)覽內(nèi)容如下:

關(guān)注「java錦囊」,回復(fù)「面試」獲取。

評論0 贊同0
  •  加載中...
UsherChen

UsherChen

回答于2022-06-28 14:10

正在動力節(jié)點學(xué)Java中..不過馬上也該刷面試題了,老師給我們解釋講解了許多,還聽有經(jīng)驗的學(xué)長講了很多,大概都有這些:

1)集合相關(guān)問題(必問):

HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底層實現(xiàn)。

HashMap和Hashtable的區(qū)別。

ArrayList、LinkedList、Vector的區(qū)別。

HashMap和ConcurrentHashMap的區(qū)別。

HashMap和LinkedHashMap的區(qū)別。

2)多線程并發(fā)相關(guān)問題(必問):

創(chuàng)建線程的3種方式。

什么是線程安全。

Runnable接口和Callable接口的區(qū)別。

wait方法和sleep方法的區(qū)別。

synchronized、Lock、ReentrantLock、ReadWriteLock。

介紹下CAS(無鎖技術(shù))。

3)JVM相關(guān)問題:

介紹下垃圾收集機制(在什么時候,對什么,做了什么)。

垃圾收集有哪些算法,各自的特點。

類加載的過程。

雙親委派模型。

有哪些類加載器。

能不能自己寫一個類叫java.lang.String。

4)設(shè)計模式相關(guān)問題(必問):

先問你熟悉哪些設(shè)計模式

然后再具體問你某個設(shè)計模式具體實現(xiàn)和相關(guān)擴展問題。

5)數(shù)據(jù)庫相關(guān)問題,針對Mysql(必問):

給題目讓你手寫SQL。

有沒有SQL優(yōu)化經(jīng)驗。

Mysql索引的數(shù)據(jù)結(jié)構(gòu)。

SQL怎么進(jìn)行優(yōu)化。

SQL關(guān)鍵字的執(zhí)行順序。

有哪幾種索引。

6)框架相關(guān)問題:

Hibernate和Mybatis的區(qū)別。

Spring MVC和Struts2的區(qū)別。

Spring用了哪些設(shè)計模式。

Spring中AOP主要用來做什么。

Spring注入bean的方式。

什么是IOC,什么是依賴注入。

Spring是單例還是多例,怎么修改。

Spring事務(wù)隔離級別和傳播性。

介紹下Mybatis/Hibernate的緩存機制。

Mybatis的mapper文件中#和$的區(qū)別。

Mybatis的mapper文件中resultType和resultMap的區(qū)別。

Mybatis中DAO層接口沒有寫實現(xiàn)類,Mapper中的方法和DAO接口方法是怎么綁定到一起的,其內(nèi)部是怎么實現(xiàn)的。

7)可能會遇到問題:

介紹下棧和隊列。

IO和NIO的區(qū)別。

介紹下B樹、二叉樹。

接口和抽象類的區(qū)別。

int和Integer的自動拆箱/裝箱相關(guān)問題。

xml全稱是什么。

常量池相關(guān)問題。

==和equals的區(qū)別。

重載和重寫的區(qū)別。

String和StringBuilder、StringBuffer的區(qū)別。

靜態(tài)變量、實例變量、局部變量線程安全嗎,為什么。

常用的linux命令。

try、catch、finally都有return語句時執(zhí)行哪個。

ajax的4個字母分別是什么意思。

分布式鎖的實現(xiàn)。

分布式session存儲解決方案。

評論0 贊同0
  •  加載中...
liuhh

liuhh

回答于2022-06-28 14:10

我自己是小白,不考java吃飯,但是也有在學(xué),也看了一些前人的經(jīng)驗之談,Java畢竟功能強大,所以崗位細(xì)分相對來講也比較多,看自己主要是從事哪一塊的吧,比方說是架構(gòu)師的話肯定會問一些架構(gòu)相關(guān)的問題,還有就是一些算法,排序啊之類的。

????????????????????????????????????????????????????????????????????????

我就是覺得很有意思,才接觸這塊的,也沒打算用這個找工作

評論0 贊同0
  •  加載中...
Render

Render

回答于2022-06-28 14:10

講點大眾的,你也知道的。

1、自我介紹

2、項目經(jīng)驗、工作履歷

3、Java高級的內(nèi)容,這點我不是很清楚了。

4、有沒有blog,github上有沒有代碼等等

祝樓主一切順利~~

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<