Java面試筆試【第五部分】

1,volatile關鍵字是否能保證線程安全?()

答案:否java

volatile關鍵字用在多線程同步中,可保證讀取的可見性,JVM只是保證從主內存加載到線程工做內存的值是最新的讀取值,而非cache中。但多個線程對volatile的寫操做,沒法保證線程安全。
安全

假如線程1,線程2 在進行read,load 操做中,發現主內存中count的值都是5,那麼都會加載這個最新的值,在線程1對count進行修改以後,會write到主內存中,主內存中的count變量就會變爲6;線程2因爲已經進行read,load操做,在進行運算以後,也會更新主內存count的變量值爲6;致使兩個線程及時volatile關鍵字修改以後,仍是會存在併發的狀況。多線程


2,下面哪一個流類屬於面向字符的輸入流( )

A、BufferedWriter
併發

B、FileInputStream
函數

C、ObjectInputStream
線程

D、InputStreamReader設計


答案:D3d

Java的IO操做中有面向字節(Byte)和麪向字符(Character)兩種方式。
面向字節的操做爲以8位爲單位對二進制的數據進行操做,對數據不進行轉換,這些類都是InputStream和OutputStream的子類。
面向字符的操做爲以字符爲單位對數據進行操做,在讀的時候將二進制數據轉爲字符,在寫的時候將字符轉爲二進制數據,這些類都是Reader和Writer的子類。cdn


3,Java能不能不經過構造函數建立對象()

A、能 B、不能
對象


答案:A

Java建立對象的幾種方式:

(1) 用new語句建立對象,這是最多見的建立對象的方法。
(2) 運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。
(3) 調用對象的clone()方法。
(4) 運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。

(1)和(2)都會明確的顯式的調用構造函數 ;(3)是在內存上對已有對象的影印,因此不會調用構造函數 ;(4)是從文件中還原類的對象,也不會調用構造函數。


4,下列哪一個敘述是正確的()

A.子類繼承父類的構造方法。
B.abstract類的子類必須是非abstract類。
C.子類繼承的方法只能操做子類繼承和隱藏的成員變量。
D.子類重寫或新增的方法也能直接操做被子類隱藏的成員變量。


答案:C

子類是不繼承父類的構造方法的,而是必須調用其父類的構造方法。
abstract類的子類能夠是abstract類,若是是非abstract類,就必須重寫父類中全部的abstract方法。
D中子類新增的方法是不能直接操做被子類隱藏的成員變量的。


5,下列哪一個敘述是正確的()

A.final類能夠有子類。
B.abstract類中只能夠有abstract方法。
C.abstract類中能夠有非abstract方法,但該方法不能夠用final修飾。
D.不能夠同時用final和abstract修飾同一個方法。
E.容許使用static修飾abstract方法。


答案:D

用final修飾的類是不容許被繼承的,A錯誤
abstract類中也能夠有普通成員方法,B錯誤
abstract類中的非abstract方法是能夠用final修飾的,而abstract方法是不能夠被final修飾的,C錯誤
D同上,正確
不容許使用static修飾abstract方法,E錯誤。


6,當檢索一個壓縮文件時,首先要創建壓縮文件輸入流對象,該對象()

  A、以選中的壓縮文件爲參數

  B、以FileInputStream對象爲參數

  C、以InputStreamReader對象爲參數

  D、以BufferedReader對象爲參數


答案:B

  在java.io包中提供了對壓縮文件進行操做的能力。它是經過壓縮文件輸入流與壓縮文件輸出流來實現的,其分別繼承自InflaterInputStream與DeflaterOutputStream。

在建立壓縮文件輸入流時,其初始化參數是一個FileInputStream類的實例。


7,已知一個有序線性表爲()(13,18,24,35,47,50,62,83,90,115,134),當用二分法查找值爲90的元素時,查找成功的比較次數爲( )

A,1 B,2 C,3 D,9


答案:B

根據二分法查找須要兩次:首先將90與表中間的元素50進行比較,因爲90大於50,因此在線性表的後半部分查找;第二次比較的元素是後半部分的中間元素,即90,這時二者相等,即查找成功。


8,Java程序的併發機制是( )

A.多線程

B.多接口

C.多平臺

D.多態性


答案:A

Java是經過多線程實現併發機制的。多線程是指一個程序中包含多個執行流, 多線程程序設計的含義是能夠將程序任務分紅幾個並行的子任務。


9,下列選項中,不屬於模塊間耦合的是( )

A.數據耦合
B.標記耦合
C.異構耦合
D.公共耦合


答案:C
模塊之間的耦合程度反映了模塊的獨立性,也反映了系統分解後的複雜程度。 按照耦合程度從弱到強,能夠將其分紅7級。

分別是非直接耦合、數據耦合、標記耦合、控制 耦合、外部耦合、公共耦合和內容耦合。其中沒有異構耦合這種方式。


10,下列關於內部類的說法不正確的是 ( )

A,內部類的類名只能在定義它的類或程序段中或在表達式內部匿名使用
B,內部類可使用它所在類的靜態成員變量和實例成員變量
C,內部類不能夠用abstract修飾符定義爲抽象類
D,內部類可做爲其餘類的成員,並且可訪問它所在類的成員


答案:C

內部類不只能夠用abstract修飾定義爲抽象類,也能夠用private或protected定義,因此選項C說法錯誤。

上期回顧:Java筆試題庫(04期)

相關文章
相關標籤/搜索