最全的Java筆試題庫之選擇題篇-總共234道【61~120】
61.關於sleep()和wait(),以下描述錯誤的一項是( )
A. sleep是執行緒類(Thread)的方法,wait是Object類的方法;
B. sleep不釋放物件鎖,wait放棄物件鎖;
C. sleep暫停執行緒、但監控狀態仍然保持,結束後會自動恢復;
D. wait後進入等待鎖定池,只有針對此物件發出notify方法後獲得物件鎖進入執行狀態。
解答:D
sleep是執行緒類(Thread)的方法,導致此執行緒暫停執行指定時間,給執行機會給其他執行緒,但是監控狀態依然保持,到時後會自動恢復。呼叫sleep不會釋放物件鎖。
wait是Object類的方法,對此物件呼叫wait方法導致本執行緒放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件發出notify方法(或notifyAll)後本執行緒才進入物件鎖定池準備獲得物件鎖進入執行狀態。
62.下面能讓執行緒停止執行的有(多選)( )
A. sleep();
B. stop();
C. notify();
D. synchronized();
E. yield();
F. wait();
G. notifyAll();
解答:ABDEF
sleep:導致此執行緒暫停執行指定時間
stop: 這個方法將終止所有未結束的方法,包括run方法。
synchronized():物件鎖
yield:當前正在被服務的執行緒可能覺得cpu的服務質量不夠好,於是提前退出,這就是yield。
wait:當前正在被服務的執行緒需要睡一會,醒來後繼續被服務
63.下面哪個可以改變容器的佈局?( )
A. setLayout(aLayoutManager);
B. addLayout(aLayoutManager);
C. layout(aLayoutManager);
D. setLayoutManager(aLayoutManager);
解答:A
Java設定佈局管理器setLayout()
64.下面哪個是applet傳遞引數的正確方式?( )
A. <applet code=Test.class age=33 width=1 height=1>
B. <param name=age value=33>
C. <applet code=Test.class name=age value=33 width=1 height=1>
D. <applet Test 33>
解答:B
65.提供Java存取資料庫能力的包是()
A.java.sql
B.java.awt
C.java.lang
D.java.swing
解答:A
java.sql是JDBC的程式設計介面
java.awt和java.swing是做影象介面的類庫
java.lang: Java 程式語言進行程式設計的基礎類
66.不能用來修飾interface的有()
A.private
B.public
C.protected
D.static
解答:ACD
修飾介面可以是public和預設
67.下列說法錯誤的有()
A. 在類方法中可用this來呼叫本類的類方法
B. 在類方法中呼叫本類的類方法時可直接呼叫
C. 在類方法中只能呼叫本類中的類方法
D. 在類方法中絕對不能呼叫例項方法
解答:ACD
A.在類方法中不能使用this關鍵字
C.在類方法中可以呼叫其它類中的類方法
D.在類方法中可以通過例項化物件呼叫例項方法
68.從下面四段(A,B,C,D)程式碼中選擇出正確的程式碼段()
A.abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
B.public class Something {
void doSomething () {
private String s = ̶”;
int l = s.length();
}
}
C.public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
D.public class Something {
public int addOne(final int x) {
return ++x; }
}
解答:C
A..抽象方法不能有方法體
B.方法中定義的是區域性變數,不能用類成員變數修飾符private
D.final修飾為常量,常量的值不能被改變
69.選擇下面程式碼的執行結果:()。
public class Test{
public void method()
{
for(int i = ; i < 3; i++)
{
System.out.print(i);
}
System.out.print(i);
}
}
A.122
B.123
C.編譯錯誤
D.沒有任何輸出
解答:C
i變數的作用範圍是整個for迴圈
7.請看如下程式碼 class Person { private int a; public int change(int m){return m;} } public class Teacher extends Person{ public int b; public static void main(String arg[]){ Person p = new Person(); Teacher t = new Teacher(); int i; // point x } }
下面哪些放在// point x?行是正確的? A, i = m; B, i = b; C, i = p.a; D, i = p.change(3); E, i = t.b;
解答:DE
A.不同的作用域
B.靜態方法中不能直接使用非靜態成員變數
C.類外不能訪問其它類私有的成員
D,E.在類方法中可以通過例項化物件呼叫類中的例項成員。 71下面那幾個函式是public void method(){̷}的過載函式?()
A.public void method( int m){̷}
B.public int method(){̷}
C.public void method2(){̷}
D.public int method(int m,float f ){̷}
解答:A
過載:方法名相同,引數列表不同
72.給出如下宣告:
String s = “Example”;
合法的程式碼由哪些?
A)s>>>=3 B)s[3]= “X” C)int i = s.iength() D)s = s +1
解答:D
A. 移位運算,要是整數型別。
B.s不是陣列
C.String類取長度的方法為:length()
D. 字串相加
73.如下哪些不是java的關鍵字?( )
A.const
B.NULL
C.false
D.this
E.native
解答:BC
雖然null false 還有true不是java的關鍵字,但是都有特殊用途,不建議作為識別符號。
74.已知表示式 int m [ ] = {,1,2,3,4,5,6};
下面哪個表示式的值與陣列下標量總數相等?( )
A .m.length()
B.m.length
C.m.length()+1
D.m.length+1
解答:B
解答:陣列下標是從零開始的,但是資料下標的總量和資料長度相同。
75.方法resume()負責恢復哪些執行緒的執行( )
A通過呼叫stop()方法而停止的執行緒。
B通過呼叫sleep()方法而停止的執行緒。
C通過呼叫wait()方法而停止的執行緒。
D通過呼叫suspend()方法而停止的執行緒。
解答:D
Suspend可以掛起一個執行緒,就是把這個執行緒暫停了,它佔著資源,但不執行,用Resume是恢復掛起的執行緒,
讓這個執行緒繼續執行下去。
76.有關執行緒的哪些敘述是對的( )
A一旦一個執行緒被建立,它就立即開始執行。
B使用start()方法可以使一個執行緒成為可執行的,但是它不一定立即開始執行。
C當一個執行緒因為搶先機制而停止執行,它被放在可執行佇列的前面。
D一個執行緒可能因為不同的原因停止並進入就緒狀態。
解答: BCD
在搶佔式執行緒模型中,作業系統可以在任何時候打斷執行緒。通常會在它運行了一段時間(就是所謂的一個
時間片)後才打斷它。這樣的結果自然是沒有執行緒能夠不公平地長時間霸佔處理器。
77.已知如下程式碼:( )
public class Test
{
public static void main(String arg[] )
{
int i = 5;
do{
System.out.print(i);
}while(–i>5)
System.out.print(“finished”);
}
}
執行後的輸出是什麼?
A 5
B 4
C 6
D finished
解答:AD
輸出5finished,do„while迴圈中迴圈體一定會執行一次
78.下面的哪些宣告是合法的?( )
A.long 1 = 499
B.int i = 4L
C.float f =1.1
D.double d = 34.4
解答:AD
B.4L應該是long型別的寫法,
C.1.1是double型別 ,float f=1.1f是正確寫法
79.給出如下程式碼:( )
class Test{
private int m;
public static void fun() {
//some code„
}
}
如何使成員變數m被函式fun()直接訪問?()
A.將private int m改為 protected int m
B.將private int m改為 public int m
C.將private int m改為 static int m
D.將private int m改為int m
解答:C
靜態的方法中可以直接呼叫靜態資料成員
8.以下哪個方法用於定義執行緒的執行體?()
A.start()
B.init()
C.run()
D.main()
E.synchronized()
解答:run方法是執行緒的執行體
81.給出下面的程式碼段:( )
public class Base{
int w, x, y, z;
public Base(int a, int b)
{x=a; y=b;
}
public Base(int a, int b, int c, int d)
{