搜狐 2022 JAVA工程師面試題(應聘 求職 面試準備資料)_第1頁
搜狐 2022 JAVA工程師面試題(應聘 求職 面試準備資料)_第2頁
搜狐 2022 JAVA工程師面試題(應聘 求職 面試準備資料)_第3頁
搜狐 2022 JAVA工程師面試題(應聘 求職 面試準備資料)_第4頁
搜狐 2022 JAVA工程師面試題(應聘 求職 面試準備資料)_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

搜狐2022JAVA工程師面試題

第1題:一、單選題

1、以下程序運行的結果為()

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

這個類雖然繼承了Thread類,但是并沒有真正創建一個線程。

創建一個線程需要掩蓋Thread類的run方法,然后調用Thread類

的start。方法啟動

這里直接調用run()方法并沒有創建線程,跟一般方法調用一樣,

是挨次執行的

第2題:

2、Java中用正則表達式截取字符串中第一個消失的英文左括號之

前的字符串。比如:北京市(海淀區)(朝陽區)(西城區),截取結

果為:北京市。正則表達式為()

A、*.*?(?=、()*

B、*.*?(?=、()*

C、*.*(?=、()*

D、*.*(?=、()*

一2一

2、A

Stringstr="北京市(海淀區)(朝陽區乂西城區廠;

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、下列關于Java并發的說法中正確的是()

A、CopyOnWriteArrayList適用于寫多讀少的并發場景

B、ReadWriteLock適用于讀多寫少的并發場景

C、ConcurrentHashMap的寫操作不需要加鎖,讀操作需要加鎖

D、只要在定義int類型的成員變量i的時候加上volatile關鍵字,

那么多線程并發執行i++這樣的操作的時候就是線程平安的了

3、B

A,CopyOnWriteArrayList適用于寫少讀多的并發場景

B,ReadWriteLock即為讀寫鎖,他要求寫與寫之間互斥,讀與寫之

間互斥,

讀與讀之間可以并發執行。在讀多寫少的狀況下可以提高效率

C,ConcurrentHashMap是同步的HashMap,讀寫都加鎖

D,volatile只保證多線程操作的可見性,不保證原子性

第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、結果不確定

4、B

這里調用t.run();

并沒有啟動一個新的線程,啟動一個新線程要用t.startf);

所以執行挨次是先執行run(),再執行System.out.print("HELLO");

第5題:

-5-

5、下面哪段程序能夠正確的實現了GBK編碼字節流到UTF-8編碼

字節流的轉換:

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編碼字節數組

第6題:

6、如下代碼,執行test()函數后,屏幕打印結果為()

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、以上都不對

6、D

publicvoidadd(Byteb){b=b++;}這里涉及java的自動裝包/自動拆包

(AutoBoxing/UnBoxing)Byte的首字母為大寫,是類,看似是引用傳遞,

但是在add函數內實現++操作,會自動拆包成byte值傳遞類型,所

以add函數還是不能實現自增功能。也就是說add函數只是個擺設,

—7—

沒有任何作用。Byte類型值大小為-128~127之間。add(++a);這里++a

會越界,a的值變為-128add(b);前面說了,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中,以上述代碼為基礎,在發生過一次FullGC后,上述代碼在

Heap空間(不包括PermGen)保留的字符數為()

A、5

B、10

C、15

D、20

—8—

7、C

substring實際是new,5字符

str3和4也都是new,每個5字符

分別都會創建新的對象

常量池是PermGen的

因此應當是一共15字符

第8題:

8、對于JVM內存配置參數:

-Xmxl024m-Xmsl0240m-Xmn5120m-XXSurvivorRatio=3

,其最小內存值和Survivor區總大小分別是()

A、5120m,1024m

B、5120m,2048m

C、10240m,1024m

D、10240m,2048m

8、D

-Xmx:最大堆大小

-Xms:初始堆大小

-Xmn:年輕代大小

—9—

-XXSurvivorRatio:年輕代中Eden區與Survivor區的大小比值

年輕代5120m,Eden:Survivor=3,Survivor區大小=1024m(Survivor

區有兩個,即將年輕代分為5份,每個Survivor區占一份),總大小

為2048mo

-Xms初始堆大小即最小內存值為10240m

第9題:

二、多選題

9、以下哪些類是線程平安的()

A、Vector

B、HashMap

C^ArrayList

D、StringBuffer

E^Properties

9、ADE

A,Vector相當于一個線程平安的List

B,HashMap是非線程平安的,其對應的線程平安類是HashTable

C,Arraylist是非線程平安的,其對應的線程平安類是Vector

D,StringBuffer是線程平安的,相當于一個線程平安的StringBuilder

-10-

E,Properties實現了Map接口,是線程平安的

第10題:

10、實現或繼承了collection接口的是()

A、map

B、List

C、vector

D、Iterator

E、Set

10、BCE

在java.util包中供應了一些集合類,常用的有List、Set和Map類,

其中List類和Set類繼承了Collection接口。這些集合類又稱為容器,

長度是可變的,數組用來存放基本數據類型的數據,集合用來存放類

對象的引用。

List接口、Set接口、Map接口以及Collection接口的主要特征如下:

Collection接口是List接口和Set接口的父接口,通常狀況下不被直

接使用。

List接口繼承了Collection接口,List接口允許存放重復的對象,排

序方式為根據對象的插入挨次。

—11-

Set接口繼承了Collection接口,Set接口不允許存放重復的對象

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論