新美大 java待遇_入我新美大的Java后台开发面试题总结
靜兒最近在總結(jié)一些面試題,那是因?yàn)樽鍪裁词虑槎家J(rèn)真。面試也一樣,靜兒作為新美大金融部門的面試官,負(fù)責(zé)任的告訴大家,下面的問題回答不上來,面試是過不了的。不過以下絕不是原題,你會(huì)發(fā)現(xiàn)自己實(shí)力不過硬,最終肯定是被問出來的。
1>如何定位線上服務(wù)OOM問題
2>JVM的GC ROOTS存在于那些地方
3>mysql innodb怎樣做查詢優(yōu)化
4>java cas的概念
下面靜兒就以自己面試的標(biāo)準(zhǔn)簡(jiǎn)單回答一下這些題怎樣回答算過關(guān)。
1>如何定位線上服務(wù)OOM問題
因?yàn)槊嬖囍饕强此悸?#xff0c;答案還是其次,那么要是我回答這個(gè)問題。我可能會(huì)把整個(gè)思路都說出來:Java服務(wù)OOM,比較常見的原因是
?? 有可能是內(nèi)存分配確實(shí)過小,而正常業(yè)務(wù)使用了大量?jī)?nèi)存
比如jmap?-heap命令可以查看新生代老年代的堆內(nèi)存大小及使用情況,看看是否內(nèi)存本身分配過小。
?? 某一個(gè)對(duì)象被頻繁申請(qǐng),卻沒有釋放,內(nèi)存不斷泄漏,導(dǎo)致內(nèi)存耗盡
比如jmap -histo:live 對(duì)象顯示存活對(duì)象的信息,并按照所占內(nèi)存大小的排序。因?yàn)榘藢?shí)例數(shù)、所占內(nèi)存大小、類名,所以很直觀。
?? 某一個(gè)資源被頻繁申請(qǐng),系統(tǒng)資源耗盡,例如:不斷創(chuàng)建線程,不斷發(fā)起網(wǎng)絡(luò)連接
可以用pstree、netstat查看進(jìn)程創(chuàng)建線程數(shù),網(wǎng)絡(luò)連接數(shù),如果資源耗盡,也會(huì)出現(xiàn)OOM。也可以查看/proc/${PID}/fd ?和/proc/${PID}/task,查看句柄詳情和線程數(shù)。
2>JVM的GC ROOTS存在于那些地方
問到這個(gè)問題應(yīng)該是前面一步步引導(dǎo)過來的,如果沒有,在直接回答這個(gè)問題之前,最好簡(jiǎn)要描述一下JVM的內(nèi)存結(jié)構(gòu)和根搜索算法(GC ROOTS Tracing)做可達(dá)性分析。
GC Roots的對(duì)象包括如下幾種(靜兒來新美大的時(shí)候就被我們架構(gòu)師問過這個(gè)問題):
?? ?虛擬機(jī)棧(棧楨中的本地變量表)中的引用的對(duì)象
?? ?方法區(qū)中的類靜態(tài)屬性引用的對(duì)象
?? ?方法區(qū)中的常量引用的對(duì)象
?? ?本地方法棧中JNI的引用的對(duì)象
GC管理的主要區(qū)域是Java堆,一般情況下只針對(duì)堆進(jìn)行垃圾回收。方法區(qū)、棧和本地方法區(qū)不被GC所管理,因而選擇這些區(qū)域作為GC ROOTS。被GC ROOTS引用的對(duì)象不會(huì)被垃圾回收。
3>mysql innodb怎樣做查詢優(yōu)化
這個(gè)問題的答案就比較多了,各人的心得都是不一樣的。主要考察在工作實(shí)踐中的總結(jié)和思考能力。最好面試者能在總結(jié)的通用答案之后加上實(shí)際項(xiàng)目中的使用例子。
?? ?innodb_buffer_pool_size 此參數(shù)的作用是緩沖數(shù)據(jù)和索引,對(duì)性能可以產(chǎn)生線性的提高,最大可設(shè)置為內(nèi)存大小的百分之七八十的樣子
?? ?打開慢查詢?nèi)罩?#xff0c;增加參數(shù):log-queries-not-using-indexes,方便把系統(tǒng)中沒有走索引的sql語句全抓出來優(yōu)化
?? ?通過explain做查詢分析,看看有沒有用索引,訪問的行數(shù)rows
?? ?關(guān)閉skip_name_resolve,減少逆向DNS解析的消耗
另外還有一些實(shí)際寫代碼過程中深入骨髓的,比如數(shù)據(jù)動(dòng)靜分離提高query_cache的命中率啦,減少字段冗余,減少查詢次數(shù)啦,復(fù)雜查詢分解啦,分頁(yè)優(yōu)化啦啥的。
很多人說面試題和實(shí)際開發(fā)聯(lián)系不大,覺得沒啥用。其實(shí)很多活培訓(xùn)兩個(gè)月都是能干的。人和人之間的差距確實(shí)沒有明顯到你能干我不能干的程度。但是之前做過一個(gè)項(xiàng)目,我和別人一起干,干完之后我要修改很多其他人的各種慢查詢問題啦,性能問題啦之類。我看了他們寫的sql,我發(fā)現(xiàn)這些sql我會(huì)理所當(dāng)然不那么用的。因?yàn)槲以谌巳说臅r(shí)候就很注意這些方面,我認(rèn)為是理所當(dāng)然的,知道這樣影響性能。
還有就是面試評(píng)價(jià)好的人實(shí)際寫代碼的時(shí)候確實(shí)出的問題要少,因?yàn)樗麄兛紤]更全面。很多人不是有意要出bug的,但是確實(shí)是不知道啊,不知道要考慮情況A,情況B,不知道JVM底層的實(shí)現(xiàn),所以有可能會(huì)產(chǎn)生的意想不到的結(jié)果。出了問題了也不知道往哪個(gè)方向去想。
4>java cas的概念
cas:compare and swap,比較并交換
java的concurrent包中借助cas實(shí)現(xiàn)了區(qū)別于synchronized同步鎖的一種樂觀鎖。
CAS利用CPU的CAS指令,同時(shí)借助JNI來完成java的非阻塞算法,其他的原子操作都是利用類似的特性完成的。java的concurrent包相對(duì)于使用synchronized性能提升也是主要依賴于它。
跑題時(shí)間:
這幾年萬圣節(jié)都會(huì)買南瓜自己做南瓜燈。我給小鮮肉在美國(guó)買的西餐刀非常安全,我都是把南瓜洗干凈,旁邊放一個(gè)干凈鐵盆,讓小鮮肉自己雕刻南瓜燈,我睡覺去。因?yàn)槲页兄Z了要用做南瓜燈剩下的邊角料給他做南瓜餅,所以睡覺起來會(huì)看到桌子上很干凈。記得有一年我覺得浪費(fèi),把南瓜頂上的蓋也做著吃了,小鮮肉很生氣,我們只好第二天一起去超時(shí)重買了一個(gè)小貝貝南瓜重做了一個(gè)南瓜燈。
南瓜餅可以直接將南瓜煮熟放糖放面粉做成餅油炸。用牛奶來和面味道更好。我總習(xí)慣捏出來各種動(dòng)物形狀做一盤外焦里嫩的動(dòng)物大餐。但是如果是一整個(gè)南瓜,那就蒸成9分熟之后和面粉一起用杵搗,搗的時(shí)間越長(zhǎng)越有彈性。這個(gè)工作當(dāng)然是交給小鮮肉來做的。但是這樣就不好捏成形狀了,只用勺子弄成球下鍋。油鍋開始時(shí)是小火,南瓜餅熟的差不多了,再開大點(diǎn)火,外面酥脆,里面松軟。
只可惜現(xiàn)在都是很忙,周末也只是辦公間隙里去給小鮮肉做點(diǎn)小點(diǎn)心。記得原來總是特別清閑,找工作也總是不給自己加壓,說自己不做管理。過著管好自己就可以的生活。有次帶著小鮮肉去華科看牡丹,看到一個(gè)姑娘悠閑的躺在長(zhǎng)椅上曬太陽(yáng)。這可不就是原來的自己。悠然的過了那么多年,告訴自己“有花堪折直須折”,早就做好了準(zhǔn)備接受現(xiàn)在的一切,而真的到來的時(shí)候,除了慶幸自己想要做的都試過了,還是多少有些傷感。
男神在我手機(jī)上看我的BOSS直聘。我說:“人家老公查媳婦手機(jī)都是看看媳婦到底跟誰聊了天,都聊了啥,你看你”。男神漫不經(jīng)心的說:“對(duì)啊,關(guān)心啊,所以把你手機(jī)沒收了。”然后接著看BOSS直聘。
別看周末是這樣的,平時(shí)我忙的都不回家,也就是周末才回家一趟。每天男神都給我請(qǐng)安,問我是否活著。他最近改了頭像,頭像是東軟的一條小道,因?yàn)樵瓉砦覀z在東軟的時(shí)候每天早晨我倆都剛好能在那條小道上打個(gè)照面。從那以來,兩個(gè)人就是彼此牽掛、彼此信任、一起努力的往前走。奮斗是很辛苦,如果一個(gè)人的話是很難堅(jiān)持。兩個(gè)人相互鼓勵(lì)的往前走,想要放棄的時(shí)候,總是不忍心讓對(duì)方失望,于是就實(shí)現(xiàn)了一個(gè)又一個(gè)的目標(biāo)。
男神最近在一路開掛的面試,面試過程中收獲了一打年輕漂亮的獵頭和HR。因?yàn)樗麚Q工作的理由是:“我想找個(gè)離媳婦近的工作,每天接送媳婦上下班。”我相信我家男神的自制力,看到男神的offer薪資秒殺我,我趕緊發(fā)個(gè)短信問他:“以后你這么牛逼了,還能每周給我洗衣服嗎?”男神毫不猶豫的回了個(gè):“能”。結(jié)果周末回家告訴我我上周的衣服還有幾件沒洗的,讓我有空自己洗吧,我突然覺得天兒咋這么冷呢。還幻想著勸我家男神來我們新美大,像以前我在人人的時(shí)候一樣,每周末來給我收拾工位呢。不來也好,旁邊站著一個(gè)女神收割機(jī),我壓力也是有的。
當(dāng)一個(gè)人站在自己面前,其實(shí)自己心里是很清楚的。誰是合適的,誰是喜歡的。而到底誰是對(duì)的人取決于自己的人生規(guī)劃。規(guī)劃著想要幸福就選合適的,天生為才藝而生的人會(huì)選喜歡的。如果來生還是今世的重復(fù),縱然多情要比無情苦。痛苦才是才藝的源泉,經(jīng)歷過才會(huì)感同身受。原來看過一個(gè)從零維空間到十維空間的,突然覺得之前遇見過的人都是其中一個(gè)維度的選擇,只是自己不喜歡那個(gè)選擇,于是在這個(gè)空間里做了調(diào)整。
一個(gè)人做了一場(chǎng)夢(mèng),醒來感嘆夢(mèng)而已。實(shí)際上做夢(mèng)的時(shí)候,體內(nèi)有數(shù)以萬計(jì)的細(xì)胞終其一生只為演繹這場(chǎng)夢(mèng)境。誰又能肯定自己不是別人夢(mèng)境中的一個(gè)細(xì)胞呢。所以呢,別把自己太當(dāng)回事,演繹好自己,好夢(mèng)!
總結(jié)
以上是生活随笔為你收集整理的新美大 java待遇_入我新美大的Java后台开发面试题总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 强化学习实践三 :编写通用的格子世界环境
- 下一篇: TaiShan服务器介绍