【299天】我愛刷題系列058(2017.12.01)

叨叨兩句

  1. 搞定~一晃就是299天,恍如隔世通常,看來,堅持的方法已經算搞明白了。

牛客網——java專項練習038

1

java Thread中,run方法和start方法的區別,下面說法錯誤的是?
正確答案: Bjava

  1. 經過調用Thread類的start()方法來啓動一個線程,這時此線程是處於就緒狀B 態,並無運行。
  2. 他們均可以實現了多線程運行。
  3. run方法是thread的一個普通方法調用。
  4. 調用start方法後,一旦獲得cpu時間片,就開始執行run()方法。
兩種方法的區別:
    1.start方法
         用 start方法來啓動線程,是真正實現了多線程, 經過調用Thread類的start()方法來啓動一個線程,這時此線程處於就緒(可運行)狀態,並無運行,一旦獲得cpu時間片,就開始執行run()方法。但要注意的是,此時無需等待run()方法執行完畢,便可繼續執行下面的代碼。因此run()方法並無實現多線程。
    2.run方法
         run()方法只是類的一個普通方法而已,若是直接調用Run方法,程序中依然只有主線程這一個線程,其程序執行路徑仍是隻有一條,仍是要順序執行,仍是要等待run方法體執行完畢後纔可繼續執行下面的代碼。

2

關於抽象類與最終類,下列說法錯誤的是?
正確答案: D 你的答案: C (錯誤)多線程

  1. 抽象類能被繼承,最終類只能被實例化。
  2. 抽象類和最終類均可以被聲明使用
  3. 抽象類中能夠沒有抽象方法,最終類中能夠沒有最終方法
  4. 抽象類和最終類被繼承時,方法能夠被子類覆蓋
最終類就是被final修飾的類,最終方法就是被final修飾的方法。最終類不能被繼承,最終方法不能被重寫。
對於選項B. 抽象類和最終類均可以被聲明使用。
這裏只是說「聲明」,並無說「實例化」;若是隻是聲明是能夠的,最多見的使用方式就是:
一、父類類型的引用指向子類的對象;
二、 接口類型的引用指向該接口的實現類的對象;
以上兩種使用方式也就是所謂的「向上轉型」。
抽象類時專門拿來被繼承的,其實也能夠沒有抽象方法。抽象類是不能實例化的,實例化必將加載類,而後根本不知道抽象方法的方法體大小,因此不能實例化。
而final類,之因此被定義爲final類是認爲這個類已經很完美了,不但願被繼承被擴展或者被修改。final方法是能夠被繼承的,可是不能夠被覆蓋。
相關文章
相關標籤/搜索