天天看點

牛客java選擇題每日打卡Day24

牛客java選擇題每日打卡Day24

👩‍💻部落格首頁:京與舊鋪的部落格首頁

✨歡迎關注🖱點贊🎀收藏⭐留言✒

🔮本文由京與舊鋪原創

😘系列專欄:java學習

👕參考網站:牛客網

💻首發時間:🎞2022年7月10日🎠

🎨你做三四月的事,八九月就會有答案,一起加油吧

🀄如果覺得部落客的文章還不錯的話,請三連支援一下部落客哦

🎧最後的話,作者是一個新人,在很多方面還做的不好,歡迎大佬指正,一起學習哦,沖沖沖

💬推薦一款模拟面試、刷題神器👉​​點選進入網站​​

牛客java選擇題每日打卡Day24

🛒導航小助手🎪

文章目錄

  • ​​牛客java選擇題每日打卡Day24​​
  • ​​🛒導航小助手🎪​​
  • ​​@[toc]​​
  • ​​🐱‍💻選擇題1​​
  • ​​正确答案: B 你的答案: C (錯誤)​​
  • ​​🐱‍💻選擇題2​​
  • ​​正确答案: C 你的答案: A (錯誤)​​
  • ​​🐱‍💻選擇題3​​
  • ​​正确答案: A 你的答案: D (錯誤)​​
  • ​​🐱‍💻選擇題4​​
  • ​​正确答案: A B C D 你的答案: A B (錯誤)​​
  • ​​🐱‍💻選擇題5​​
  • ​​正确答案: A B D 你的答案: B C (錯誤)​​
  • ​​🐱‍💻選擇題6​​
  • ​​正确答案: B C D 你的答案: B D (錯誤)​​
  • ​​🐱‍💻選擇題7​​
  • ​​正确答案: A C 你的答案: C D (錯誤)​​

🐱‍💻選擇題1

java中用()字指明繼承關系,用()關鍵字指明對接口的實作。

正确答案: B 你的答案: C (錯誤)

implements extends
extends implements
extend implement
implement extend      
  • 答案:B

    extends表繼承父類

    implements表是實作接口

🐱‍💻選擇題2

若有定義語句: int a=10 ; double b=3.14 ; 則表達式 ‘A’+a+b 值的類型是()

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

char
int
double
float      

選C,double類型,因為按照類型大的與類型小的運算,強制轉換類型小的進行運算的規則,double>int>char,是以結果是double類型。

🐱‍💻選擇題3

閱讀如下代碼。 請問,對語句行 test.hello(). 描述正确的有()

package NowCoder;
class Test {
  public static void hello() {
      System.out.println("hello");
  }
}
public class MyApplication {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Test test=null;
    test.hello();
  }
}      

正确答案: A 你的答案: D (錯誤)

能編譯通過,并正确運作
因為使用了未初始化的變量,是以不能編譯通過
以錯誤的方式通路了靜态方法
能編譯通過,但因變量為null,不能正常運作      

很簡單,靜态方法屬于靜态綁定,編譯器根據引用類型所屬的靜态類型為它綁定其對應的方法。此語句會翻譯成invokestatic,該指令的調用中不會涉及this,是以不會依賴對象! 還有引用類型=null,其實就是指該引用在堆中沒有對應的對象,但是編譯的時候還是能根據聲明找到其所屬的靜态類型。

🐱‍💻選擇題4

下面有關servlet的層級結構和常用的類,說法正确的有?

正确答案: A B C D 你的答案: A B (錯誤)

GenericServlet類:抽象類,定義一個通用的、獨立于底層協定的Servlet。
大多數Servlet通過從GenericServlet或HttpServlet類進行擴充來實作
ServletConfig接口定義了在Servlet初始化的過程中由Servlet容器傳遞給Servlet得配置資訊對象
HttpServletRequest接口擴充ServletRequest接口,為HTTP Servlet提供HTTP請求資訊      
  • HttpServlet是GenericServlet的子類。

    GenericServlet是個抽象類,必須給出子類才能執行個體化。它給 出了設計servlet的一些骨架,定義了servlet生命周期,還有一些得到名字、配置、初始化參數的方法,其設計的是和應用層協定無關的,也就是說 你有可能用非http協定實作它。

    HttpServlet是子類,當然就具有GenericServlet的一切特性,還添加了doGet, doPost, doDelete, doPut, doTrace等方法對應處理http協定裡的指令的請求響應過程。

    一般沒有特殊需要,自己寫的Servlet都擴充HttpServlet 。

🐱‍💻選擇題5

下列哪些方法是針對循環優化進行的

正确答案: A B D 你的答案: B C (錯誤)

強度削弱
删除歸納變量
删除多餘運算
代碼外提      

代碼優化也可分為局部優化、 循環優化和全局優化:

局部優化指的是在隻有一個入口、 一個出口的基本程式塊上進行的優化。

循環優化是對循環中的代碼進行的優化,在一個程式運作時,相當多的一部分時間會花在循環上,是以,基于循環的優化非常重要。

全局優化是在整個程式範圍内進行的優化。**

删除多餘運算**

使生成的目标代碼減少而執行速度較快

也叫删除公共子表達式

循環優化:對循環中的代碼段,可以進行代碼外提、強度削弱和删除歸納變量等優化。

删除多餘運算應該不是專門針對循環優化的。

🐱‍💻選擇題6

在使用super和this關鍵字時,以下描述錯誤的是()

正确答案: B C D 你的答案: B D (錯誤)

在子類構造方法中使用super()顯示調用父類的構造方法,super()必須寫在子類構造方法的第一行,否則編譯不通過
super()和this()不一定要放在構造方法内第一行
this()和super()可以同時出現在一個構造函數中
this()和super()可以在static環境中使用,包括static方法和static語句塊      
  • 1、super()表示調用父類構造函數、this()調用自己的構造函數,而自己的構造函數第一行要使用super()調用父類的構造函數,是以這倆不能在一個構造函數中會出現重複引用的情況

    2、super()和this()必須在構造函數第一行,是以這一點也表明他倆不能在一個構造函數中

    3、this()和super()都指的是對象,是以,均不可以在static環境中使用。包括:static變量,static方法,static語句塊(裡面不能使用非static類型的)。

🐱‍💻選擇題7

下面幾個關于Java裡queue的說法哪些是正确的()?

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

LinkedBlockingQueue是一個可選有界隊列,不允許null值
PriorityQueue,LinkedBlockingQueue都是線程不安全的
PriorityQueue是一個無界隊列,不允許null值,入隊和出隊的時間複雜度是O(log(n))
PriorityQueue,ConcurrentLinkedQueue都遵循FIFO原則      

以下翻譯來自java8的官方文檔:

1、LinkedBlockingQueue:基于連結節點的可選限定的blocking queue 。 這個隊列排列元素FIFO(先進先出)。 隊列的頭部是隊列中最長的元素。 隊列的尾部是隊列中最短時間的元素。 新元素插入隊列的尾部,隊列檢索操作擷取隊列頭部的元素。 連結隊列通常具有比基于陣列的隊列更高的吞吐量,但在大多數并發應用程式中的可預測性能較低。

blocking queue說明:不接受null元素;可能是容量有限的;實作被設計為主要用于生産者 - 消費者隊列;不支援任何類型的“關閉”或“關閉”操作,表示不再添加項目實作是線程安全的;

2、PriorityQueue:

2.1、基于優先級堆的無限優先級queue 。 優先級隊列的元素根據它們的有序natural ordering ,或由一個Comparator在隊列構造的時候提供,這取決于所使用的構造方法。 優先隊列不允許null元素。 依靠自然排序的優先級隊列也不允許插入不可比較的對象(這樣做可能導緻ClassCastException )。

2.2、該隊列的頭部是相對于指定順序的最小元素。 如果多個元素被綁定到最小值,那麼頭就是這些元素之一 - 關系被任意破壞。 隊列檢索操作poll , remove , peek和element通路在隊列的頭部的元件。

2.3、優先級隊列是無限制的,但是具有管理用于在隊列上存儲元素的數組的大小的内部容量 。 它始終至少與隊列大小一樣大。 當元素被添加到優先級隊列中時,其容量會自動增長。 沒有規定增長政策的細節。

2.4、該類及其疊代器實作Collection和Iterator接口的所有可選方法。 方法iterator()中提供的疊代器不能保證以任何特定順序周遊優先級隊列的元素。 如果需要有序周遊,請考慮使用Arrays.sort(pq.toArray()) 。

2.5、請注意,此實作不同步。 如果任何線程修改隊列,多線程不應同時通路PriorityQueue執行個體。 而是使用線程安全的PriorityBlockingQueue類。

實作注意事項:此實作提供了O(log(n))的時間入隊和出隊方法( offer , poll , remove()和add ); remove(Object)和contains(Object)方法的線性時間; 和恒定時間檢索方法( peek , element和size )。

yQueue執行個體。 而是使用線程安全的PriorityBlockingQueue類。

實作注意事項:此實作提供了O(log(n))的時間入隊和出隊方法( offer , poll , remove()和add ); remove(Object)和contains(Object)方法的線性時間; 和恒定時間檢索方法( peek , element和size )。