您好,登錄后才能下訂單哦!
本篇內容主要講解“Java精選筆試題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java精選筆試題有哪些”吧!
1,下列說法正確的是()
A.一個文件里可以同時存在兩個public修飾的類
B.構造函數可以被重寫(override)
C.子類不能訪問父類非public和protected修飾的屬性
D.final修飾的類可以被繼承
答案:C
一個Java源文件中最多只能有一個public類,當有一個public類時,源文件名必須與之一致,否則無法編譯,如果源文件中沒有一個public類,則文件名與類中沒有一致性要求。至于main()不是必須要放在public類中才能運行程序。
重寫是子類繼承父類后對父類的方法進行修改。方法名,參數,返回值必須一樣。 不能重寫被標示為final的方法。如果不能繼承一個方法,則不能重寫這個方法。
擴展:重寫override,重載overload的區別
java的方法重載
就是在類中可以創建多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。調用方法時通過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法,而且返回值類型可以相同也可以不相同,這也是面向對象的多態性。
java的方法重寫
父類與子類之間的多態性,對父類的函數進行重新定義。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類并不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱方法覆蓋。
若子類中的方法與父類中的某一方法具有相同的方法名、返回類型和參數表,則新方法將覆蓋原有的方法。如需父類中原有的方法,可使用super關鍵字,該關鍵字引用了當前類的父類。
子類函數的訪問修飾權限不能少于父類的;
重寫方法只能存在于具有繼承關系中,重寫方法只能重寫父類非私有的方法。
2,for(int x=0,y=0;(y!=0)&&(x<4);x++)循環的執行次數是()
A.無限次
B.執行4次
C.執行3次
D.一次也不執行
答案:D
y初始值為0,在整個for循環中,y的值不變,故判斷語句中的(y!=0)不成立,故一次也不執行。
3,關于 JAVA 堆,下面說法錯誤的是( )
A.所有類的實例和數組都是在堆上分配內存的
B.對象所占的堆內存是由自動內存管理系統回收
C.堆內存由存活和死亡的對象,空閑碎片區組成
D.數組是分配在棧中的
答案:D
首先數組是分配在堆中的,故D的說法不正確。
Java堆的結構:JVM的堆是運行時數據區,所有類的實例和數組都是在堆上分配內存。它在JVM啟動的時候被創建。對象所占的堆內存是由自動內存管理系統也就是垃圾收集器回收。堆內存是由存活和死亡的對象組成的。存活的對象是應用可以訪問的,不會被垃圾回收。死亡的對象是應用不可訪問尚且還沒有被垃圾收集器回收掉的對象。一直到垃圾收集器把這些對象回收掉之前,他們會一直占據堆內存空間。
4,在使用super 和this關鍵字時,以下描述正確的是()
A.在子類構造方法中使用super()顯示調用父類的構造方法;
super()必須寫在子類構造方法的第一行,否則編譯不通過
B.super()和this()不一定要放在構造方法內第一行
C.this()和super()可以同時出現在一個構造函數中
D.this()和super()可以在static環境中使用,包括static方法和static語句塊
答案:A
Java關鍵字this只能用于方法方法體內。當一個對象創建后,Java虛擬機(JVM)就會給這個對象分配一個引用自身的指針,這個指針的名字就是this。因此,this只能在類中的非靜態方法中使用,靜態方法和靜態的代碼塊中絕對不能出現this。
super關鍵和this作用類似,是被屏蔽的成員變量或者成員方法或變為可見,或者說用來引用被屏蔽的成員變量和成員成員方法。
不過super是用在子類中,目的是訪問直接父類中被屏蔽的成員,注意是直接父類(就是類之上最近的超類)
5,下列語句哪一個正確()
A.Java程序經編譯后會產生machine code
B.Java程序經編譯后會產生byte code
C.Java程序經編譯后會產生DLL
D.以上都不正確
答案:B
Java字節碼是Java源文件編譯產生的中間文件
java虛擬機是可運行java字節碼的假想計算機 java的跨平臺性也是相對與其他編程語言而言的 。
先介紹一下c語言的編譯過程:c的文件經過C編譯程序編譯后生成windows可執行文件exe文件然后在windows中執行。
再介紹java的編譯過程:java的文件由java編譯程序將java字節碼文件就是class文件在java虛擬機中執行。機器碼是由CPU來執行的;Java編譯后是字節碼。
電腦只能運行機器碼。Java在運行的時候把字節碼變成機器碼。C/C++在編譯的時候直接編譯成機器碼
6,下列哪一種敘述是正確的()
A.abstract修飾符可修飾字段、方法和類
B.抽象方法的body部分必須用一對大括號{ }包住
C.聲明抽象方法,大括號可有可無
D.聲明抽象方法不可寫出大括號
答案:D
abstract修飾符用來修飾類和成員方法
用abstract修飾的類表示抽象類,抽象類位于繼承樹的抽象層,抽象類不能被實例化。
用abstract修飾的方法表示抽象方法,抽象方法沒有方法體。抽象方法用來描述系統具有什么功能,但不提供具體的實現。
Abstract是Java中的一個重要關鍵字,可以用來修飾一個類或者一個方法。
修飾一個方法時,表示該方法只有特征簽名(signature),沒有具體實現,而是把具體實現留給繼承該類的子類,所以不能有大括號。
7,下列說法正確的有()
A.class中的constructor不可省略
B.constructor必須與class同名,但方法不能與class同名
C.constructor在一個對象被new時執行
D.一個class只能定義一個constructor
答案:C
這里可能會有誤區,其實普通的類方法是可以和類名同名的,和構造方法唯一的區分就是,構造方法沒有返回值。
8,GC線程是否為守護線程()
答案:是
線程分為守護線程和非守護線程(即用戶線程)。
只要當前JVM實例中尚存在任何一個非守護線程沒有結束,守護線程就全部工作;只有當最后一個非守護線程結束時,守護線程隨著JVM一同結束工作。
守護線程最典型的應用就是 GC (垃圾回收器)
9,關于sleep()和wait(),以下描述錯誤的一項是( )
A. sleep是線程類(Thread)的方法,wait是Object類的方法;
B. sleep不釋放對象鎖,wait放棄對象鎖;
C. sleep暫停線程、但監控狀態仍然保持,結束后會自動恢復;
D. wait后進入等待鎖定池,只有針對此對象發出notify方法后獲得對象鎖進入運行狀態。
答案:D
sleep是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他線程,但是監控狀態依然保持,到時后會自動恢復。調用sleep不會釋放對象鎖。
wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態。
10,方法resume()負責恢復哪些線程的執行( )
A,通過調用stop()方法而停止的線程。
B,通過調用sleep()方法而停止的線程。
C,通過調用wait()方法而停止的線程。
D,通過調用suspend()方法而停止的線程。
答案:D
suspend可以掛起一個線程,就是把這個線程暫停了,它占著資源,但不運行,用resume是恢復掛起的線程,讓這個線程繼續執行下去。
到此,相信大家對“Java精選筆試題有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。