溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java精選筆試題有哪些

發(fā)布時(shí)間:2021-11-30 14:45:39 來(lái)源:億速云 閱讀:107 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Java精選筆試題有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java精選筆試題有哪些”吧!

1,下列說(shuō)法正確的是()

A.一個(gè)文件里可以同時(shí)存在兩個(gè)public修飾的類

B.構(gòu)造函數(shù)可以被重寫(xiě)(override)

C.子類不能訪問(wèn)父類非public和protected修飾的屬性

D.final修飾的類可以被繼承

答案:C

        一個(gè)Java源文件中最多只能有一個(gè)public類,當(dāng)有一個(gè)public類時(shí),源文件名必須與之一致,否則無(wú)法編譯,如果源文件中沒(méi)有一個(gè)public類,則文件名與類中沒(méi)有一致性要求。至于main()不是必須要放在public類中才能運(yùn)行程序。

  重寫(xiě)是子類繼承父類后對(duì)父類的方法進(jìn)行修改。方法名,參數(shù),返回值必須一樣。 不能重寫(xiě)被標(biāo)示為final的方法。如果不能繼承一個(gè)方法,則不能重寫(xiě)這個(gè)方法。

擴(kuò)展:重寫(xiě)override,重載overload的區(qū)別

   java的方法重載

        就是在類中可以創(chuàng)建多個(gè)方法,它們具有相同的名字,但具有不同的參數(shù)和不同的定義。調(diào)用方法時(shí)通過(guò)傳遞給它們的不同參數(shù)個(gè)數(shù)和參數(shù)類型來(lái)決定具體使用哪個(gè)方法,而且返回值類型可以相同也可以不相同,這也是面向?qū)ο蟮亩鄳B(tài)性。

   java的方法重寫(xiě)

        父類與子類之間的多態(tài)性,對(duì)父類的函數(shù)進(jìn)行重新定義。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說(shuō)該方法被重寫(xiě) (Overriding)。在Java中,子類可繼承父類中的方法,而不需要重新編寫(xiě)相同的方法。但有時(shí)子類并不想原封不動(dòng)地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫(xiě)。方法重寫(xiě)又稱方法覆蓋。

        若子類中的方法與父類中的某一方法具有相同的方法名、返回類型和參數(shù)表,則新方法將覆蓋原有的方法。如需父類中原有的方法,可使用super關(guān)鍵字,該關(guān)鍵字引用了當(dāng)前類的父類。

        子類函數(shù)的訪問(wèn)修飾權(quán)限不能少于父類的;

        重寫(xiě)方法只能存在于具有繼承關(guān)系中,重寫(xiě)方法只能重寫(xiě)父類非私有的方法。

2,for(int x=0,y=0;(y!=0)&&(x<4);x++)循環(huán)的執(zhí)行次數(shù)是()

A.無(wú)限次    

B.執(zhí)行4次    

C.執(zhí)行3次    

D.一次也不執(zhí)行

答案:D

        y初始值為0,在整個(gè)for循環(huán)中,y的值不變,故判斷語(yǔ)句中的(y!=0)不成立,故一次也不執(zhí)行。

3,關(guān)于 JAVA 堆,下面說(shuō)法錯(cuò)誤的是( )

A.所有類的實(shí)例和數(shù)組都是在堆上分配內(nèi)存的        

B.對(duì)象所占的堆內(nèi)存是由自動(dòng)內(nèi)存管理系統(tǒng)回收

C.堆內(nèi)存由存活和死亡的對(duì)象,空閑碎片區(qū)組成       

D.數(shù)組是分配在棧中的

答案:D

        首先數(shù)組是分配在堆中的,故D的說(shuō)法不正確。

        Java堆的結(jié)構(gòu):JVM的堆是運(yùn)行時(shí)數(shù)據(jù)區(qū),所有類的實(shí)例和數(shù)組都是在堆上分配內(nèi)存。它在JVM啟動(dòng)的時(shí)候被創(chuàng)建。對(duì)象所占的堆內(nèi)存是由自動(dòng)內(nèi)存管理系統(tǒng)也就是垃圾收集器回收。堆內(nèi)存是由存活和死亡的對(duì)象組成的。存活的對(duì)象是應(yīng)用可以訪問(wèn)的,不會(huì)被垃圾回收。死亡的對(duì)象是應(yīng)用不可訪問(wèn)尚且還沒(méi)有被垃圾收集器回收掉的對(duì)象。一直到垃圾收集器把這些對(duì)象回收掉之前,他們會(huì)一直占據(jù)堆內(nèi)存空間。

4,在使用super 和this關(guān)鍵字時(shí),以下描述正確的是()
A.在子類構(gòu)造方法中使用super()顯示調(diào)用父類的構(gòu)造方法;

    super()必須寫(xiě)在子類構(gòu)造方法的第一行,否則編譯不通過(guò)
B.super()和this()不一定要放在構(gòu)造方法內(nèi)第一行
C.this()和super()可以同時(shí)出現(xiàn)在一個(gè)構(gòu)造函數(shù)中
D.this()和super()可以在static環(huán)境中使用,包括static方法和static語(yǔ)句塊

答案:A

        Java關(guān)鍵字this只能用于方法方法體內(nèi)。當(dāng)一個(gè)對(duì)象創(chuàng)建后,Java虛擬機(jī)(JVM)就會(huì)給這個(gè)對(duì)象分配一個(gè)引用自身的指針,這個(gè)指針的名字就是this。因此,this只能在類中的非靜態(tài)方法中使用,靜態(tài)方法和靜態(tài)的代碼塊中絕對(duì)不能出現(xiàn)this。

        super關(guān)鍵和this作用類似,是被屏蔽的成員變量或者成員方法或變?yōu)榭梢?jiàn),或者說(shuō)用來(lái)引用被屏蔽的成員變量和成員成員方法。

        不過(guò)super是用在子類中,目的是訪問(wèn)直接父類中被屏蔽的成員,注意是直接父類(就是類之上最近的超類)

5,下列語(yǔ)句哪一個(gè)正確()

A.Java程序經(jīng)編譯后會(huì)產(chǎn)生machine code

B.Java程序經(jīng)編譯后會(huì)產(chǎn)生byte code

C.Java程序經(jīng)編譯后會(huì)產(chǎn)生DLL

D.以上都不正確

答案:B

        Java字節(jié)碼是Java源文件編譯產(chǎn)生的中間文件

        java虛擬機(jī)是可運(yùn)行java字節(jié)碼的假想計(jì)算機(jī) java的跨平臺(tái)性也是相對(duì)與其他編程語(yǔ)言而言的 。

        先介紹一下c語(yǔ)言的編譯過(guò)程:c的文件經(jīng)過(guò)C編譯程序編譯后生成windows可執(zhí)行文件exe文件然后在windows中執(zhí)行。

        再介紹java的編譯過(guò)程:java的文件由java編譯程序?qū)ava字節(jié)碼文件就是class文件在java虛擬機(jī)中執(zhí)行。機(jī)器碼是由CPU來(lái)執(zhí)行的;Java編譯后是字節(jié)碼。

        電腦只能運(yùn)行機(jī)器碼。Java在運(yùn)行的時(shí)候把字節(jié)碼變成機(jī)器碼。C/C++在編譯的時(shí)候直接編譯成機(jī)器碼

6,下列哪一種敘述是正確的()

A.a(chǎn)bstract修飾符可修飾字段、方法和類

B.抽象方法的body部分必須用一對(duì)大括號(hào){ }包住

C.聲明抽象方法,大括號(hào)可有可無(wú)

D.聲明抽象方法不可寫(xiě)出大括號(hào)

答案:D

        abstract修飾符用來(lái)修飾類和成員方法 

        用abstract修飾的類表示抽象類,抽象類位于繼承樹(shù)的抽象層,抽象類不能被實(shí)例化。 

        用abstract修飾的方法表示抽象方法,抽象方法沒(méi)有方法體。抽象方法用來(lái)描述系統(tǒng)具有什么功能,但不提供具體的實(shí)現(xiàn)。

        Abstract是Java中的一個(gè)重要關(guān)鍵字,可以用來(lái)修飾一個(gè)類或者一個(gè)方法。

        修飾一個(gè)方法時(shí),表示該方法只有特征簽名(signature),沒(méi)有具體實(shí)現(xiàn),而是把具體實(shí)現(xiàn)留給繼承該類的子類,所以不能有大括號(hào)。

7,下列說(shuō)法正確的有()

A.class中的constructor不可省略

B.constructor必須與class同名,但方法不能與class同名

C.constructor在一個(gè)對(duì)象被new時(shí)執(zhí)行

D.一個(gè)class只能定義一個(gè)constructor

答案:C 

        這里可能會(huì)有誤區(qū),其實(shí)普通的類方法是可以和類名同名的,和構(gòu)造方法唯一的區(qū)分就是,構(gòu)造方法沒(méi)有返回值。

8,GC線程是否為守護(hù)線程()

答案:是

        線程分為守護(hù)線程和非守護(hù)線程(即用戶線程)。

        只要當(dāng)前JVM實(shí)例中尚存在任何一個(gè)非守護(hù)線程沒(méi)有結(jié)束,守護(hù)線程就全部工作;只有當(dāng)最后一個(gè)非守護(hù)線程結(jié)束時(shí),守護(hù)線程隨著JVM一同結(jié)束工作。

        守護(hù)線程最典型的應(yīng)用就是 GC (垃圾回收器)

9,關(guān)于sleep()和wait(),以下描述錯(cuò)誤的一項(xiàng)是( )

A. sleep是線程類(Thread)的方法,wait是Object類的方法;

B. sleep不釋放對(duì)象鎖,wait放棄對(duì)象鎖;

C. sleep暫停線程、但監(jiān)控狀態(tài)仍然保持,結(jié)束后會(huì)自動(dòng)恢復(fù);

D. wait后進(jìn)入等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法后獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。

答案:D

        sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對(duì)象鎖。

        wait是Object類的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。

10,方法resume()負(fù)責(zé)恢復(fù)哪些線程的執(zhí)行( )

A,通過(guò)調(diào)用stop()方法而停止的線程。

B,通過(guò)調(diào)用sleep()方法而停止的線程。

C,通過(guò)調(diào)用wait()方法而停止的線程。

D,通過(guò)調(diào)用suspend()方法而停止的線程。

答案:D

        suspend可以掛起一個(gè)線程,就是把這個(gè)線程暫停了,它占著資源,但不運(yùn)行,用resume是恢復(fù)掛起的線程,讓這個(gè)線程繼續(xù)執(zhí)行下去。

到此,相信大家對(duì)“Java精選筆試題有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI