全套学习!java排序sort方法
字節(jié)跳動(dòng)
- ?試前
- ??
- ??
- ?結(jié)
?試前
頭條的?試是三家?最專業(yè)的,每次?試前有專?的HR和你約時(shí)間,確定OK后再進(jìn)??試。每次都是通過視頻?試,因?yàn)槎际侵岸际请娫?或現(xiàn)場(chǎng)?,所以視頻?試還是有點(diǎn)不?然。也有?覺得視頻?試體驗(yàn)很贊,當(dāng)然蘿??菜各有所愛。最坑的??的時(shí)候?qū)??試官的?絡(luò)?是掉線,最后很冤枉的掛了(當(dāng)然有?些點(diǎn)答得不好也是原因之?)。所以還是有點(diǎn)遺憾的。
字節(jié)一面:
- 先?我介紹下
- 聊項(xiàng)目,逆向系統(tǒng)是什么意思
- 聊項(xiàng)目,逆向系統(tǒng)用了哪些技術(shù)
- 線程池的線程數(shù)怎么確定?
- 如果是IO操作為主怎么確定?
- 如果計(jì)算型操作?怎么確定?
- Redis熟悉么,了解哪些數(shù)據(jù)結(jié)構(gòu)?(說了zset) zset底層怎么實(shí)現(xiàn)的?(跳表)
- 跳表的查詢過程是怎么樣的,查詢和插?的時(shí)間復(fù)雜度?(說了先從第?層查找,不滿?就下沉到第?層找,因?yàn)槊?層都是有序的,寫?和插?的時(shí)間復(fù)雜度都是O(logN))
- 紅?樹了解么,時(shí)間復(fù)雜度?(說了是N叉平衡樹,O(logN))
- 既然兩個(gè)數(shù)據(jù)結(jié)構(gòu)時(shí)間復(fù)雜度都是O(logN),zset為什么不?紅?樹(跳表實(shí)現(xiàn)簡(jiǎn)單,踩坑成本低,紅?樹每次插?都要通過旋轉(zhuǎn)以維持平衡,實(shí)現(xiàn)復(fù)雜)
- 點(diǎn)了點(diǎn)頭,說下Dubbo的原理?(說了服務(wù)注冊(cè)與發(fā)布以及消費(fèi)者調(diào)?的過程)踩過什么坑沒有?(說了dubbo異常處理的和打印accesslog的問題)
- CAS了解么?(說了CAS的實(shí)現(xiàn))還了解其他同步機(jī)制么?(說了synchronize以及兩者的區(qū)別,?個(gè)樂觀鎖,?個(gè)悲觀鎖)
- 那我們做?道題吧,數(shù)組A,2*n個(gè)元素,n個(gè)奇數(shù)、n個(gè)偶數(shù),設(shè)計(jì)?個(gè)算法,使得數(shù)組奇數(shù)下標(biāo)位置放置的都是奇數(shù),偶數(shù)下標(biāo)位置放置的都是偶數(shù)
- 先說下你的思路(從0下標(biāo)開始遍歷,如果是奇數(shù)下標(biāo)判斷該元素是否奇數(shù),是則跳過,否則從該位置尋找下?個(gè)奇數(shù))
- 下?個(gè)奇數(shù)?怎么找?(有點(diǎn)懵逼,思考中。。)
- 有思路么?(仍然是先遍歷?次數(shù)組,并對(duì)下標(biāo)進(jìn)?判斷,如果下標(biāo)屬性和該位置元素不匹配從當(dāng)前下標(biāo)的下?個(gè)遍歷數(shù)組元素,然后替換)
- 你這樣時(shí)間復(fù)雜度有點(diǎn)?,如果要求O(N)要怎么做(思考?會(huì),答道“定義兩個(gè)指針,分別從下標(biāo)0和1開始遍歷,遇?奇數(shù)位是是偶數(shù)和偶數(shù)位是奇數(shù)就停下,交換內(nèi)容”)
- 時(shí)間差不多了,先到這吧。你有什么想問我的?
字節(jié)二面:
- ?試官和藹很多,你先介紹下??吧
- 你對(duì)服務(wù)治理怎么理解的?
- 項(xiàng)?中的限流怎么實(shí)現(xiàn)的?(Guava ratelimiter,令牌桶算法)
- 具體怎么實(shí)現(xiàn)的?(要點(diǎn)是固定速率且令牌數(shù)有限)
- 如果突然很多線程同時(shí)請(qǐng)求令牌,有什么問題?(導(dǎo)致很多請(qǐng)求積壓,線程阻塞)
- 怎么解決呢?(可以把積壓的請(qǐng)求放到消息隊(duì)列,然后異步處理)
- 如果不?消息隊(duì)列怎么解決?(說了RateLimiter預(yù)消費(fèi)的策略)
- 分布式追蹤的上下?是怎么存儲(chǔ)和傳遞的?(ThreadLocal + spanId,當(dāng)前節(jié)點(diǎn)的spanId作為下個(gè)節(jié)點(diǎn)的?spanId)
- Dubbo的RpcContext是怎么傳遞的?(ThreadLocal)主線程的ThreadLocal怎么傳遞到線程池?(說了先在主線程通過ThreadLocal的get?法拿到上下?信息,在線程池創(chuàng)建新的ThreadLocal并把之前獲取的上下?信息設(shè)置到ThreadLocal中。這?要注意的線程池創(chuàng)建的ThreadLocal要在finally中?動(dòng)remove,不然會(huì)有內(nèi)存泄漏的問題)
- 你說的內(nèi)存泄漏具體是怎么產(chǎn)?的?(說了ThreadLocal的結(jié)構(gòu),主要分兩種場(chǎng)景:主線程仍然對(duì)ThreadLocal有引?和主線程不存在對(duì)ThreadLocal的引?。第?種場(chǎng)景因?yàn)橹骶€程仍然在運(yùn)?,所以還是有對(duì)ThreadLocal的引?,那么ThreadLocal變量的引?和value是不會(huì)被回收的。第?種場(chǎng)景雖然主線程不存在對(duì)ThreadLocal的引?,且該引?是弱 引?,所以會(huì)在gc的時(shí)候被回收,但是對(duì)?的value不是弱引?,不會(huì)被內(nèi)存回收,仍然會(huì)造成內(nèi)存泄漏)
- 線程池的線程是不是必須?動(dòng)remove才可以回收value?(是的,因?yàn)榫€程池的核?線程是?直存在的,如果不清理,那么核?線程的threadLocals變量會(huì)?直持有ThreadLocal變量)
- 那你說的內(nèi)存泄漏是指主線程還是線程池?(主線程 )
- 可是主線程不是都退出了,引?的對(duì)象不應(yīng)該會(huì)主動(dòng)回收么?(?試官和內(nèi)存泄漏杠上了),沉默了?會(huì)。。。
- 那你說下SpringMVC不同?戶登錄的信息怎么保證線程安全的?(剛才解釋的有點(diǎn)懵逼,?下沒反應(yīng)過來,居然回答成鎖了。?腦有點(diǎn)暈了,此時(shí)已經(jīng)?個(gè)?時(shí)過去了,感覺情況不妙。。。)
- 這個(gè)直接?ThreadLocal不就可以么,你?過SpringMVC有鎖實(shí)現(xiàn)的代碼么?(有點(diǎn)暈菜。。。)我們聊聊mysql吧,說下索引結(jié)構(gòu)(說了B+樹)
- 為什么使?B+樹?( 說了查詢效率?,O(logN),可以充分利?磁盤預(yù)讀的特性,多叉樹,深度?,葉?結(jié)點(diǎn)有序且存儲(chǔ)數(shù)據(jù))
- 什么是索引覆蓋?(忘記了。。。 )
- Java為什么要設(shè)計(jì)雙親委派模型?
- 什么時(shí)候需要?定義類加載器?
- 我們做?道題吧,?寫?個(gè)對(duì)象池
- 有什么想問我的么?(感覺我很多點(diǎn)都沒答好,是不是掛了(結(jié)果真的是) )
?結(jié)
頭條的?試確實(shí)很專業(yè),每次?試官會(huì)提前給你發(fā)?個(gè)視頻鏈接,然后準(zhǔn)點(diǎn)開始?試,?且考察的點(diǎn)都?較全。
?試官都有?個(gè)特點(diǎn),會(huì)抓住?個(gè)值得深?的點(diǎn)或者你沒說清楚的點(diǎn)深?下去直到你把這個(gè)點(diǎn)講清楚,不然?試官會(huì)覺得你并沒有真正理解。???試官給了我?點(diǎn)建議,研究技術(shù)的時(shí)候?定要去研究產(chǎn)?的背景,弄明?在什么場(chǎng)景解決什么特定的問題,其實(shí)很多技術(shù)內(nèi)部都是相通的。很誠(chéng)懇,還是很感謝這位?試官??。
最后
給大家送上一份福利,領(lǐng)取方式:戳這里免費(fèi)下載
Java架構(gòu)進(jìn)階面試及知識(shí)點(diǎn)文檔筆記
這份文檔共498頁(yè),其中包括Java集合,并發(fā)編程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面試解析及知識(shí)點(diǎn)整理
Java分布式高級(jí)面試問題解析文檔
其中都是包括分布式的面試問題解析,內(nèi)容有分布式消息隊(duì)列,Redis緩存,分庫(kù)分表,微服務(wù)架構(gòu),分布式高可用,讀寫分離等等!
互聯(lián)網(wǎng)Java程序員面試必備問題解析及文檔學(xué)習(xí)筆記
Java架構(gòu)進(jìn)階視頻解析合集
a程序員面試必備問題解析及文檔學(xué)習(xí)筆記**
[外鏈圖片轉(zhuǎn)存中…(img-qTX1Edb7-1625826729552)]
Java架構(gòu)進(jìn)階視頻解析合集
總結(jié)
以上是生活随笔為你收集整理的全套学习!java排序sort方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冰原守卫者安卓IOS互通吗
- 下一篇: java招聘职位描述,附学习笔记+面试整