1. 程式人生 > >java筆試題的筆記(手寫,待更新)

java筆試題的筆記(手寫,待更新)

方法 更新 ofo illegal const blank private and prot

1、

String str=new String("abc"); 緊接著這段代碼之後的往往是這個問題,那就是這行代碼究竟創建了幾個String對象呢?

2個。

2、

wait和notify方法是Java同步機制中重要的組成部分, 這些方法只有在Synchronized方法或Synchronized代碼塊中才能使用 否者就會報java.lang.IllegalMonitorStateExceprion異常 3、

ArrayList list = new ArrayList(20);中的list擴充幾次()

A 0 B 1 C 2 D 3

答案:A

4、

不通過構造函數也能創建對象。 ?

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

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

5、

存在使i+1 < i的數。 ?

java中int是32,範圍是-2147483648--2147483647,所以是存在i+1<i的。

6、

假設某二叉樹的先序遍歷序列是abdgcefh,中序遍歷序列是dgbaechf,畫出二叉樹,並給出其後序遍歷序列。 分析過程: 以下面的例題為例進行講解: 已知一棵二叉樹的先序遍歷序列和中序遍歷序列分別是abdgcefh、dgbaechf,求二叉樹及後序遍歷序列。 分析:先序遍歷序列的第一個字符為根結點。對於中序遍歷,根結點在中序遍歷序列的中間,左邊部分是根結點的左子樹的中序遍歷序列,右邊部分是根結點的右子樹的中序遍歷序列。 先序:abdgcefh --> a bdg cefh 中序:dgbaechf --> dgb a echf 得出結論:a是樹根,a有左子樹和右子樹,左子樹有bdg結點,右子樹有cefh結點。 先序:bdg --> b dg 中序:dgb --> dg b 得出結論:b是左子樹的根結點,b無右子樹,有左子樹。 先序:dg --> d g 中序:dg --> d g 得出結論:d是b的左子樹的根結點,d無左子樹,有右子樹。 先序:cefh --> c e fh 中序:echf --> e c hf 得出結論:c是右子樹的根結點,c有左子樹(只有e結點),有右子樹(有fh結點)。 先序:fh --> f h 中序:hf --> h f 得出結論:f是c的左子樹的根結點,f有左子樹(只有h結點),無右子樹。 還原二叉樹為: a b c d e f g h 後序遍歷序列:gdbehfca

7、

數據結構 赫夫曼 簡單的選擇題
設一組權值集合W={2,3,4,5,6},則由該權值集合構造的哈夫曼樹中帶權路徑長度之和為( ).
(A) 20(B) 30(C) 40(D) 45

技術分享圖片

技術分享圖片

帶權路徑=6*2+5*2+4*2+3*3+2*3=45

8、

JAVA反射機制
JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法;這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。
Java反射機制主要提供了以下功能: 在運行時判斷任意一個對象所屬的類;在運行時構造任意一個類的對象;在運行時判斷任意一個類所具有的成員變量和方法;在運行時調用任意一個對象的方法;生成動態代理。

9、

抽象類的子類中:

既可以是一個具體的類(此時要重寫父類所有的抽象方法);

也可以是一個抽象類(無需重寫抽象方法)。

10、

Java語言具有許多優點和特點,下列選項中,哪個反映了Java程序並行機制的特點是----------多線性。

11、

不能用來修飾Interface的有()

A:private

B:public

C:protected

D:static

答案:

A,C,D

12、

一條指令的執行過程可以分解為取指、分析和執行三步,在取指時間t取增=3△t、分析時間t分析=2△t、執行時間t執行=4△t的情況下,若按串行方式執行,則10條指令全部執行完需要___(5)_____△t。若按照流水方式執行,則執行完10條指令需要____(6)____△t。(6)處填()。

A.20
B.30
C.40
D.45

正確答案

D

答案解析

本題考查指令執行的流水化概念。 根據題目中給出的數據,每一條指令的執行過程需要9△t。在串行執行方式下,執行完一條指令後才開始執行下一條指令,10條指令共耗時90△t。若按照流水方式執行,則在第i十2條指令處於執行階段時就可以分析第i+1條指令,同時取第i條指令。由於指令的執行階段所需時間最長(為4△t),因此指令開始流水執行後,每4△t將完成一條指令,所需時間為3△t+2△t+4△t+4△t×9=45△t。

13、

______將一個類的接口轉換成客戶希望的另外一個接口,使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。

A.Adapter(適配器)模式
B.Command(命令)模式
C.Singleton(單例)模式
D.Strategy(策略)模式

正確答案

A

答案解析

[分析] 本題考查設計模式的基本知識。
Adapter模式是將類的接口轉換成客戶希望的另外一個接口,使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。Command模式將請求封裝在對象中,這樣它就可作為參數來傳遞,也可以被存儲在歷史列表裏,或者以其他方式使用。Singleton(單例)模式保證一個類只產生唯一的一個實例。策略模式(Strategy)定義一系列的算法,把它們一個個封裝起來,並使它們可以相互替換,這一模式使得算法可以獨立於使用它的客戶而變化。

14、

java筆試題的筆記(手寫,待更新)