每日java筆試五小題-2020-9-22

2020-09-24 20:00:49

每日java筆試五小題-2020-9-22

1… Java 語言中建立一個物件使用的關鍵字是()

	正確答案: C  你的答案: C (正確)
class
interface
new
create
  1. 下面有關java hashmap的說法錯誤的是?

    正確答案: C 你的答案: C (正確)

    HashMap 的範例有兩個引數影響其效能:「初始容量」 和 「載入因子」。
    HashMap 的實現不是同步的,意味著它不是執行緒安全的
    HashMap通過開放地址法解決雜湊衝突
    HashMap中的key-value都是儲存在Entry陣列中的
    

解析:

hashmap採用拉鍊法解決衝突

在這裡幫大家總結一下hashMap和hashtable方面的知識點吧: 1. 關於HashMap的一些說法: a) HashMap實際上是一個「連結串列雜湊」的資料結構,即陣列和連結串列的結合體。HashMap的底層結構是一個陣列,陣列中的每一項是一條連結串列。 b) HashMap的範例有倆個引數影響其效能: 「初始容量」 和 裝填因子。 c) HashMap實現不同步,執行緒不安全。 HashTable執行緒安全 d) HashMap中的key-value都是儲存在Entry中的。 e) HashMap可以存null鍵和null值,不保證元素的順序恆久不變,它的底層使用的是陣列和連結串列,通過hashCode()方法和equals方法保證鍵的唯一性

  1. 下列語句正確的是:

​ 正確答案: D 你的答案: C (錯誤)

形式引數可被欄位修飾符修飾
形式引數不可以是物件
形式引數為方法被呼叫時真正被傳遞的引數
形式引數可被視為local variable

A:形式引數只能被final修飾

B:形式引數可以是物件

C:形式引數被呼叫時被傳遞的是實際引數的拷貝

D:local variable:區域性變數

  1. What will happen when you attempt to compile and run the following code?
public class Test{
static{
   int x=5;
}
static int x,y;
public static void main(String args[]){
   x--;
   myMethod( );
   System.out.println(x+y+ ++x);
}
public static void myMethod( ){
  y=x++ + ++x;
 }
}

​ 正確答案: D 你的答案: B (錯誤)

compiletime error
prints:1
prints:2
prints:3
prints:7
prints:8
  1. 關於下面這段Java程式,哪些描述是正確的:( )

    public class ThreadTest extends Thread {
    public void run() {
    System.out.println("In run");
    yield();
    System.out.println("Leaving run");
    }
    public static void main(String []argv) {
    (new ThreadTest()).start();
    }
    }
    

    正確答案: C 你的答案: A (錯誤)

程式執行輸出只有In run
程式執行輸出只有Leaving run
程式執行輸出先有In run後有Leaving run
程式執行輸出先有Leaving run後有In run
程式沒有任何輸出就退出了
程式將被掛起,只能強制退出

解析:

Thread.yield()方法作用是:暫停當前正在執行的執行緒物件,並執行其他執行緒。

yield()應該做的是讓當前執行執行緒回到可執行狀態,以允許具有相同優先順序的其他執行緒獲得執行機會。因此,使用yield()的目的是讓相同優先順序的執行緒之間能適當的輪轉執行。但是,實際中無法保證yield()達到讓步目的,因為讓步的執行緒還有可能被執行緒排程程式再次選中。

結論:yield()從未導致執行緒轉到等待/睡眠/阻塞狀態。在大多數情況下,yield()將導致執行緒從執行狀態轉到可執行狀態,但有可能沒有效果。