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

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問(wèn)答專(zhuān)欄Q & A COLUMN

兩年的java工作經(jīng)驗(yàn),面試時(shí)會(huì)被問(wèn)到些什么問(wèn)題?

ScliangScliang 回答0 收藏1
收藏問(wèn)題

10條回答

neu

neu

回答于2022-06-28 14:10

java程序都會(huì)被問(wèn)到的面試問(wèn)題,月薪20k+

多線(xiàn)程相關(guān)問(wèn)題

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

Java集合原理

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

JVM虛擬機(jī)

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

數(shù)據(jù)庫(kù)

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

框架類(lèi)

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

算法類(lèi)

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

linux服務(wù)器

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

web服務(wù)器

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

項(xiàng)目

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

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

評(píng)論0 贊同0
  •  加載中...
mingde

mingde

回答于2022-06-28 14:10

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

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

2、會(huì)問(wèn)你java涉及到的基礎(chǔ)知識(shí): OO基礎(chǔ), 常見(jiàn)類(lèi)庫(kù)用法, 常見(jiàn)類(lèi)的區(qū)別, 優(yōu)點(diǎn)和缺點(diǎn)。

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

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

5、闡述問(wèn)題的時(shí)候,盡量不要教科書(shū)式, 白話(huà)形式。

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

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

8、記住: 不懂千萬(wàn)不要裝懂亂說(shuō),態(tài)度要誠(chéng)懇, 面試官看你求知欲強(qiáng), 態(tài)度誠(chéng)懇,也就喜歡和你聊下去, 就會(huì)有好印象。

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

評(píng)論0 贊同0
  •  加載中...
tomener

tomener

回答于2022-06-28 14:10

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

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

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

2、spring

3、mybaits

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

5、dubbo

6、jvm以及垃圾回收機(jī)制

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

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

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

評(píng)論0 贊同0
  •  加載中...
hatlonely

hatlonely

回答于2022-06-28 14:10

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

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

2、會(huì)問(wèn)你java涉及到的基礎(chǔ)知識(shí): Java基礎(chǔ), 常見(jiàn)類(lèi)庫(kù)用法, 常見(jiàn)類(lèi)的區(qū)別, 優(yōu)點(diǎn)和缺點(diǎn)。

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

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

5、闡述問(wèn)題的時(shí)候,盡量不要教科書(shū)式, 白話(huà)形式。

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

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

8、記住: 不懂千萬(wàn)不要裝懂亂說(shuō),態(tài)度要誠(chéng)懇, 面試官看你求知欲強(qiáng), 態(tài)度誠(chéng)懇,也就喜歡和你聊下去, 就會(huì)有好印象。

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

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

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

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

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

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

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

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

強(qiáng)烈推薦一個(gè)網(wǎng)站:

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

https://zwmst.com/


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

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

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

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

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

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

評(píng)論0 贊同0
  •  加載中...
TesterHome

TesterHome

回答于2022-06-28 14:10


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


悄悄給大家看幾道ucloud必問(wèn)的面試題,測(cè)測(cè)能完美的回答幾道呢?

1. 有沒(méi)有一種一定能保證線(xiàn)程安全的代碼寫(xiě)法?(偷偷告訴你,真的有!)

2. 多個(gè)線(xiàn)程如何保持A1B2C3等順序交替輸出?

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

4. 無(wú)鎖、偏向鎖、輕量級(jí)鎖、重量級(jí)鎖有什么差別?

5. 如何正確的啟動(dòng)和停止一個(gè)線(xiàn)程?

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

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

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

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

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

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


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

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

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

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

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

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

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

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

評(píng)論0 贊同0
  •  加載中...
Shihira

Shihira

回答于2022-06-28 14:10

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

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

希望對(duì)你有幫助,謝謝。

評(píng)論0 贊同0
  •  加載中...
jubincn

jubincn

回答于2022-06-28 14:10

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

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

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

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

別讓人感覺(jué)你只會(huì)山寨別人的代碼

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

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

其實(shí)我們每個(gè)人都這樣過(guò)來(lái)的,但在面試時(shí),如果你僅僅表現(xiàn)出這樣的能力,就和大多數(shù)人的水平差不多了,在這點(diǎn)就沒(méi)法體現(xiàn)出你的優(yōu)勢(shì)了

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

我聽(tīng)到的回答有:增加了Redis緩存,以避免頻繁調(diào)用一些不變的數(shù)據(jù)。或者,在MyBitas的xml里,select語(yǔ)句where條件有isnull,即這個(gè)值有就增加一個(gè)where條件,對(duì)此,會(huì)對(duì)任何一個(gè)where增加一個(gè)不帶isnull的查詢(xún)條件,以免該語(yǔ)句當(dāng)傳入?yún)?shù)都是null時(shí),做全表掃描。或者,干脆說(shuō),后端異步返回的數(shù)據(jù)量很大,時(shí)間很長(zhǎng),我在項(xiàng)目里就調(diào)大了異步返回的最大時(shí)間,或者對(duì)返回信息做了壓縮處理,以增加網(wǎng)絡(luò)傳輸性能。

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

其實(shí),在準(zhǔn)備面試時(shí),歸納框架里的要點(diǎn)并不難,我就不信所有人在做項(xiàng)目時(shí)一點(diǎn)積累也沒(méi),只要你說(shuō)出來(lái),可以說(shuō),這方面你就碾壓了將近7成的競(jìng)爭(zhēng)者。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

下面列些我一般會(huì)問(wèn)的部分問(wèn)題:

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

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

我們知道,目前Java開(kāi)發(fā)是以Web框架為主,那么為什么還要問(wèn)Java核心知識(shí)點(diǎn)呢?我這個(gè)是有切身體會(huì)的。

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

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

至少了解如何看日志排查問(wèn)題

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

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

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

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

3、能通過(guò)vi來(lái)編輯文件。

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

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

通讀一段底層代碼,作為加分項(xiàng)

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

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

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

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

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

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

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

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

把上述技能嵌入到你做過(guò)的項(xiàng)目里

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

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

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

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

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

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

題庫(kù)非常全面,包括 Java 集合、JVM、多線(xiàn)程、Spring全家桶、Redis、Dubbo、Netty、Elasticsearch、ucloud巴巴等大廠(chǎng)面試題等。

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

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

評(píng)論0 贊同0
  •  加載中...
UsherChen

UsherChen

回答于2022-06-28 14:10

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

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

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

HashMap和Hashtable的區(qū)別。

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

HashMap和ConcurrentHashMap的區(qū)別。

HashMap和LinkedHashMap的區(qū)別。

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

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

什么是線(xiàn)程安全。

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

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

synchronized、Lock、ReentrantLock、ReadWriteLock。

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

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

介紹下垃圾收集機(jī)制(在什么時(shí)候,對(duì)什么,做了什么)。

垃圾收集有哪些算法,各自的特點(diǎn)。

類(lèi)加載的過(guò)程。

雙親委派模型。

有哪些類(lèi)加載器。

能不能自己寫(xiě)一個(gè)類(lèi)叫java.lang.String。

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

先問(wèn)你熟悉哪些設(shè)計(jì)模式

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

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

給題目讓你手寫(xiě)SQL。

有沒(méi)有SQL優(yōu)化經(jīng)驗(yàn)。

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

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

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

有哪幾種索引。

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

Hibernate和Mybatis的區(qū)別。

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

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

Spring中AOP主要用來(lái)做什么。

Spring注入bean的方式。

什么是IOC,什么是依賴(lài)注入。

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

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

介紹下Mybatis/Hibernate的緩存機(jī)制。

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

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

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

7)可能會(huì)遇到問(wèn)題:

介紹下棧和隊(duì)列。

IO和NIO的區(qū)別。

介紹下B樹(shù)、二叉樹(shù)。

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

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

xml全稱(chēng)是什么。

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

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

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

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

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

常用的linux命令。

try、catch、finally都有return語(yǔ)句時(shí)執(zhí)行哪個(gè)。

ajax的4個(gè)字母分別是什么意思。

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

分布式session存儲(chǔ)解決方案。

評(píng)論0 贊同0
  •  加載中...
liuhh

liuhh

回答于2022-06-28 14:10

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

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

我就是覺(jué)得很有意思,才接觸這塊的,也沒(méi)打算用這個(gè)找工作

評(píng)論0 贊同0
  •  加載中...
Render

Render

回答于2022-06-28 14:10

講點(diǎn)大眾的,你也知道的。

1、自我介紹

2、項(xiàng)目經(jīng)驗(yàn)、工作履歷

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

4、有沒(méi)有blog,github上有沒(méi)有代碼等等

祝樓主一切順利~~

評(píng)論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

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