版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
搜狐2022JAVA工程師面試題
第1題:一、單選題
1、以下程序運(yùn)行的結(jié)果為()
publicclassExampleextendsThread{
@Override
publicvoidrun(){
try(
Thread.sleep(lOOO);
}catch(InterruptedExceptione){
e.printStackTrace();
}
System.out.print("run");
)
publicstaticvoidmain(String[]args){
Exampleexample=newExample();
example.run();
System.out.print("main");
}
}
A^runmain
-1-
B、mainrun
C、main
D、run
E、不能確定
1、A
這個(gè)類雖然繼承了Thread類,但是并沒(méi)有真正創(chuàng)建一個(gè)線程。
創(chuàng)建一個(gè)線程需要掩蓋Thread類的run方法,然后調(diào)用Thread類
的start。方法啟動(dòng)
這里直接調(diào)用run()方法并沒(méi)有創(chuàng)建線程,跟一般方法調(diào)用一樣,
是挨次執(zhí)行的
第2題:
2、Java中用正則表達(dá)式截取字符串中第一個(gè)消失的英文左括號(hào)之
前的字符串。比如:北京市(海淀區(qū))(朝陽(yáng)區(qū))(西城區(qū)),截取結(jié)
果為:北京市。正則表達(dá)式為()
A、*.*?(?=、()*
B、*.*?(?=、()*
C、*.*(?=、()*
D、*.*(?=、()*
一2一
2、A
Stringstr="北京市(海淀區(qū))(朝陽(yáng)區(qū)乂西城區(qū)廠;
StringpatStr=".*?(?=\\0";
Patternpattern=Ppile(patStr);
Matchermatcher=pattern.matcher(str);
if(matcher.find())
(
System.out.println(matcher.group(0));
}
else
(
System.out.println(matcher.group(0));
}
第3題:
-3-
3、下列關(guān)于Java并發(fā)的說(shuō)法中正確的是()
A、CopyOnWriteArrayList適用于寫(xiě)多讀少的并發(fā)場(chǎng)景
B、ReadWriteLock適用于讀多寫(xiě)少的并發(fā)場(chǎng)景
C、ConcurrentHashMap的寫(xiě)操作不需要加鎖,讀操作需要加鎖
D、只要在定義int類型的成員變量i的時(shí)候加上volatile關(guān)鍵字,
那么多線程并發(fā)執(zhí)行i++這樣的操作的時(shí)候就是線程平安的了
3、B
A,CopyOnWriteArrayList適用于寫(xiě)少讀多的并發(fā)場(chǎng)景
B,ReadWriteLock即為讀寫(xiě)鎖,他要求寫(xiě)與寫(xiě)之間互斥,讀與寫(xiě)之
間互斥,
讀與讀之間可以并發(fā)執(zhí)行。在讀多寫(xiě)少的狀況下可以提高效率
C,ConcurrentHashMap是同步的HashMap,讀寫(xiě)都加鎖
D,volatile只保證多線程操作的可見(jiàn)性,不保證原子性
第4題:
4、以下JAVA程序的輸出是什么()
publicclassHelloSogou{
publicstaticsynchronizedvoidmain(String[]a){
Threadt=newThread(){
-4-
publicvoidrun(){Sogou();}
};
t.run();
System.out.print("Hello");
)
staticsynchronizedvoidSogou(){
System.out.print("Sogou");
}
}
A、HelloSogou
B、SogouHello
C、Hello
D、結(jié)果不確定
4、B
這里調(diào)用t.run();
并沒(méi)有啟動(dòng)一個(gè)新的線程,啟動(dòng)一個(gè)新線程要用t.startf);
所以執(zhí)行挨次是先執(zhí)行run(),再執(zhí)行System.out.print("HELLO");
第5題:
-5-
5、下面哪段程序能夠正確的實(shí)現(xiàn)了GBK編碼字節(jié)流到UTF-8編碼
字節(jié)流的轉(zhuǎn)換:
byte[]src,dst;
A、dst=String.fromBytes(src,"GBK").getBytes("UTF-8")
B、dst=newString(src,"GBK").getBytes("UTF-8")
C^dst=newString("GBK",src).getBytes()
D、dst=String.encode(String.decode(src,"GBK")),"UTF-8")
5、B
操作步驟就是先解碼再編碼
用newString(src,"GBK")解碼得到字符串
用getBytes("UTF-8")得到UTF8編碼字節(jié)數(shù)組
第6題:
6、如下代碼,執(zhí)行test()函數(shù)后,屏幕打印結(jié)果為()
publicclassTest2
(
publicvoidadd(Byteb)
b=b++;
-6-
}
publicvoidtest()
(
Bytea=127;
Byteb=127;
add(++a);
System.out.print(a+"");
add(b);
System.out.print(b+
}
}
A、127127
B、128127
C、129128
D、以上都不對(duì)
6、D
publicvoidadd(Byteb){b=b++;}這里涉及java的自動(dòng)裝包/自動(dòng)拆包
(AutoBoxing/UnBoxing)Byte的首字母為大寫(xiě),是類,看似是引用傳遞,
但是在add函數(shù)內(nèi)實(shí)現(xiàn)++操作,會(huì)自動(dòng)拆包成byte值傳遞類型,所
以add函數(shù)還是不能實(shí)現(xiàn)自增功能。也就是說(shuō)add函數(shù)只是個(gè)擺設(shè),
—7—
沒(méi)有任何作用。Byte類型值大小為-128~127之間。add(++a);這里++a
會(huì)越界,a的值變?yōu)?128add(b);前面說(shuō)了,add不起任何作用,b還
是127
第7題:
7、
staticStringstr0="0123456789";
staticStringstrl="0123456789";
Stringstr2=strl.substring(5);
Stringstr3=newString(str2);
Stringstr4=newString(str3.toCharArray());
strO=null;
假定str0,...,str4后序代碼都是只讀引用。
Java7中,以上述代碼為基礎(chǔ),在發(fā)生過(guò)一次FullGC后,上述代碼在
Heap空間(不包括PermGen)保留的字符數(shù)為()
A、5
B、10
C、15
D、20
—8—
7、C
substring實(shí)際是new,5字符
str3和4也都是new,每個(gè)5字符
分別都會(huì)創(chuàng)建新的對(duì)象
常量池是PermGen的
因此應(yīng)當(dāng)是一共15字符
第8題:
8、對(duì)于JVM內(nèi)存配置參數(shù):
-Xmxl024m-Xmsl0240m-Xmn5120m-XXSurvivorRatio=3
,其最小內(nèi)存值和Survivor區(qū)總大小分別是()
A、5120m,1024m
B、5120m,2048m
C、10240m,1024m
D、10240m,2048m
8、D
-Xmx:最大堆大小
-Xms:初始堆大小
-Xmn:年輕代大小
—9—
-XXSurvivorRatio:年輕代中Eden區(qū)與Survivor區(qū)的大小比值
年輕代5120m,Eden:Survivor=3,Survivor區(qū)大小=1024m(Survivor
區(qū)有兩個(gè),即將年輕代分為5份,每個(gè)Survivor區(qū)占一份),總大小
為2048mo
-Xms初始堆大小即最小內(nèi)存值為10240m
第9題:
二、多選題
9、以下哪些類是線程平安的()
A、Vector
B、HashMap
C^ArrayList
D、StringBuffer
E^Properties
9、ADE
A,Vector相當(dāng)于一個(gè)線程平安的List
B,HashMap是非線程平安的,其對(duì)應(yīng)的線程平安類是HashTable
C,Arraylist是非線程平安的,其對(duì)應(yīng)的線程平安類是Vector
D,StringBuffer是線程平安的,相當(dāng)于一個(gè)線程平安的StringBuilder
-10-
E,Properties實(shí)現(xiàn)了Map接口,是線程平安的
第10題:
10、實(shí)現(xiàn)或繼承了collection接口的是()
A、map
B、List
C、vector
D、Iterator
E、Set
10、BCE
在java.util包中供應(yīng)了一些集合類,常用的有List、Set和Map類,
其中List類和Set類繼承了Collection接口。這些集合類又稱為容器,
長(zhǎng)度是可變的,數(shù)組用來(lái)存放基本數(shù)據(jù)類型的數(shù)據(jù),集合用來(lái)存放類
對(duì)象的引用。
List接口、Set接口、Map接口以及Collection接口的主要特征如下:
Collection接口是List接口和Set接口的父接口,通常狀況下不被直
接使用。
List接口繼承了Collection接口,List接口允許存放重復(fù)的對(duì)象,排
序方式為根據(jù)對(duì)象的插入挨次。
—11-
Set接口繼承了Collection接口,Set接口不允許存放重復(fù)的對(duì)象
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度特定時(shí)段電力供應(yīng)協(xié)議
- 2024權(quán)威金融借款協(xié)議范本立即下載
- 2024專業(yè)大廳租賃協(xié)議法律文檔
- 2024年國(guó)際技術(shù)協(xié)作協(xié)議樣書(shū)
- 鄉(xiāng)村教師培育評(píng)估結(jié)果的運(yùn)用
- 數(shù)字治理與研究生教育決策的智能化協(xié)同策略
- 低空經(jīng)濟(jì)中的消費(fèi)者需求變化
- 高品質(zhì)不銹鋼定制生產(chǎn)服務(wù)協(xié)議
- 城市居民二手房買賣協(xié)議樣本
- 廠房租賃化協(xié)議模板20242
- 試卷印制服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 1+X數(shù)字營(yíng)銷技術(shù)應(yīng)用題庫(kù)
- 俄羅斯禮儀完
- 小學(xué)六年級(jí)語(yǔ)文(小升初)修改病句專項(xiàng)練習(xí)題(含答案)
- 人教版六年級(jí)音樂(lè)上冊(cè)全冊(cè)教案
- 辦稅服務(wù)外包投標(biāo)方案(技術(shù)標(biāo))
- 冷庫(kù)是有限空間應(yīng)急預(yù)案
- 基于PLC的機(jī)械手控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 足軟組織感染的護(hù)理查房
- 建設(shè)項(xiàng)目竣工環(huán)境保護(hù)驗(yàn)收管理辦法
- 植物學(xué)課件:第二章 種子和幼苗
評(píng)論
0/150
提交評(píng)論