2022.9.9 順豐一面
1、介紹MySQL索引(很籠統(tǒng)的問題,應(yīng)該要從各個(gè)方面介紹,我只介紹了innodb的索引的底層數(shù)據(jù)結(jié)構(gòu))
2、spring在研發(fā)過程中承擔(dān)的角色,解決了哪些問題(IOC和AOP,其實(shí)可以從JavaEE的三層架構(gòu)來回答,spring在每一層都提供了解決方案,
- 表現(xiàn)層:spring MVC,
- 業(yè)務(wù)邏輯層:IOC,
- 數(shù)據(jù)訪問層:spring的JDBCtemplate,
- AOP
- 整合其他框架
3、研發(fā)過程中用到了spring的哪些方面(只回答了IOC和AOP)
4、手寫單例模式的實(shí)現(xiàn)(當(dāng)時(shí)不會(huì),下來學(xué)習(xí)了,結(jié)果后面的招銀面試也面到了,所以面試查漏補(bǔ)缺很重要?。。。?/p>
5、手寫排序算法(寫了快排!隨機(jī)基準(zhǔn)數(shù)排序版本,寫了一個(gè)change函數(shù),交換兩個(gè)數(shù)的位置)
6、問change函數(shù)可以不用第三個(gè)變量實(shí)現(xiàn)交換兩個(gè)元素嗎?(異或位運(yùn)算)
7、synchronize關(guān)鍵字:
作用
加在靜態(tài)方法上鎖住的是什么對(duì)象(類對(duì)象)
面試官寫代碼,問我對(duì)不對(duì)
// 下面的代碼能保證線程安全嗎?? // 我回答的可以,因?yàn)殒i住的是局部實(shí)例對(duì)象 static void test(){ Object o = new Object(); synchronize(o){ // ...業(yè)務(wù)代碼 } }
// 庫(kù)存 static int i = 100; // 會(huì)拋出異常嗎 // 回答的會(huì) static void test(){ Object o = new Object(); synchronize(o){ --i; if(i<0){ throw exception; } } }
static int i = 100; static Object o = new Object(); // 這樣呢,能鎖住對(duì)象o嗎 // 回答的可以 static void test(){ synchronize(o){ --i; if(i<0){ throw exception; } } }#順豐科技面試##順豐科技##順豐#