面試崗位
Java開發(fā)工程師(校招)
筆試 (2021.1009)
算法題
說有一個(gè)數(shù)組
1,2,3,3,3,2,2
颗祝,他的數(shù)字最高出現(xiàn)頻率是 ,讓你找到他的子串中恼布,數(shù)字最高出現(xiàn)頻率和他相等的最短子串螺戳。
答:統(tǒng)計(jì)每個(gè)數(shù)出現(xiàn)次數(shù)、最早出現(xiàn)時(shí)間以及最晚出現(xiàn)時(shí)間折汞。然后再遍歷一遍即可倔幼。說有
n
塊積木,你需要把他們摞起來爽待,摞起來的條件是上下兩塊相鄰的積木質(zhì)量差不能超過x
损同,同時(shí)你還有k
塊任意重量的積木。問你最少摞成多少堆鸟款?
答:先排序膏燃,再把所有相鄰兩數(shù)差值存進(jìn)優(yōu)先隊(duì)列,每次彈出最小的何什,如果≤x
直接忽略组哩,反之嘗試添加過渡積木。最后返回隊(duì)列剩余大小 +1 即可。
一面
基礎(chǔ)題
事務(wù)
ACID
是什么禁炒?
答:原子性而咆,一致性,隔離性和持久性隔離性是什么幕袱?
答:事務(wù)的隔離性是指在并發(fā)環(huán)境中暴备,并發(fā)的事務(wù)是相互隔離的,一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾事務(wù)的隔離級別有哪些们豌?
答:①讀未提交涯捻,有臟讀;②讀已提交望迎,不可重復(fù)讀障癌;③可重復(fù)讀,有幻讀辩尊;④串行化涛浙。不可重復(fù)讀和幻讀區(qū)別?
答:不可重復(fù)讀是兩次讀取時(shí)數(shù)據(jù)變化摄欲,主要是update
和delete
轿亮,可以用行鎖解決;而幻讀更多的是insert
導(dǎo)致的胸墙,光用行鎖是解決不了的我注。通常采用MVCC
等方法來解決。聚簇索引和非聚簇索引有什么區(qū)別迟隅?
答:聚簇索引將索引和數(shù)據(jù)同時(shí)保存在葉子節(jié)點(diǎn)上但骨,這樣每次搜索到對應(yīng)節(jié)點(diǎn),就可以直接拿到相應(yīng)數(shù)據(jù)智袭;非聚簇索引則是數(shù)據(jù)不直接存在節(jié)點(diǎn)上奔缠,而是僅主鍵值,查到該節(jié)點(diǎn)后补履,還需要去主鍵查詢一次添坊。死鎖的四個(gè)條件
答:① 互斥條件; ② 請求與保持箫锤; ③不剝奪; ④ 循環(huán)等待條件銀行家算法雨女?
答:試探分配谚攒,如果判斷空閑資源足以滿足某個(gè)進(jìn)程所有需求,那就執(zhí)行該進(jìn)程氛堕,否則取消該次分配馏臭。ArrayList
和LinkedList
區(qū)別?
答:前者是動(dòng)態(tài)數(shù)組,后者基于雙向鏈表括儒。ArrayList
和LinkedList
二者哪個(gè)更占空間绕沈?
答:通常情況下后者更占空間,因?yàn)殒湵硇枰涗浨昂蠊?jié)點(diǎn)指針帮寻,但是當(dāng)ArrayList
恰好擴(kuò)容時(shí)乍狐,由于需要擴(kuò)容到 倍,因此可能更占空間固逗。線程池了解嗎浅蚪?有哪些主要參數(shù)?都大概起什么作用烫罩?
答:① 核心線程數(shù)惜傲;② 任務(wù)隊(duì)列; ③ 最大線程數(shù)贝攒; ④存活時(shí)間盗誊;⑤ 拒絕策略
首先啟動(dòng)時(shí)開①個(gè)線程,然后任務(wù)放到②中等待執(zhí)行隘弊,②滿后開啟至③個(gè)線程浊伙,如果有閑置非核心線程,④時(shí)間后銷毀长捧,如果②又滿了嚣鄙,且已經(jīng)開到③個(gè)線程,則執(zhí)行⑤串结。JVM
結(jié)構(gòu)描述一下哑子,堆里面存什么
答:有共用的堆和方法區(qū),然后有很多線程肌割,線程中包含程序計(jì)數(shù)器 卧蜓,虛擬機(jī)棧和本地方法棧。堆里面存對象實(shí)例和數(shù)組把敞。CMS
和G1
區(qū)別弥奸?
答:① 前者面向老年代,后者面向老年代和新生代奋早;②G1
停頓時(shí)間可預(yù)測盛霎;③ 標(biāo)記-清除和標(biāo)記-整理; ④ 垃圾回收過程不同AOP
和IOC
是啥耽装?
答: 面向切面編程愤炸,把一些和核心功能無關(guān)的又必不可少重復(fù)性高的工作,做成函數(shù)掉奄,放到核心功能前后规个,相當(dāng)于把原有的功能做了一個(gè)包裝。
原先我們在某個(gè)類中需要另一個(gè)類的時(shí)候,需要手動(dòng)new
一個(gè)新對象诞仓,而控制反轉(zhuǎn)則是通過Bean
的byType
和byName
之類的方式缤苫,將類之間的依賴關(guān)系交給Spring
來完成,由他來創(chuàng)造新的對象墅拭,并賦予對象之間相互關(guān)系活玲。
算法題
沒有算法題
二面
問的全都是學(xué)習(xí)和項(xiàng)目相關(guān)的:
英語水平?
本科和研究生期間哪科成績最好帜矾,哪科成績最差翼虫?
什么是對抗攻擊?你畢設(shè)內(nèi)容是什么屡萤?
項(xiàng)目里為什么引入了
Docker
珍剑,好處是啥?
感受
總體而言比較輕松死陆,面試官都非常隨和招拙,問的都不難,筆試也很容易措译。本來覺得是不是招聘末期刷一下 KPI
别凤,結(jié)果頭兩天來了 offer call
。強(qiáng)哥這人行领虹,能處规哪。