天天看點

牛客java選擇題每日打卡Day26

牛客java選擇題每日打卡Day26

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

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

🔮本文由京與舊鋪原創

😘系列專欄:java學習

👕參考網站:牛客網

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

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

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

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

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

🛒導航小助手🎪

文章目錄

  • ​​牛客java選擇題每日打卡Day26​​
  • ​​🛒導航小助手🎪​​
  • ​​@[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 (錯誤)​​
牛客java選擇題每日打卡Day26

🐱‍🚀選擇題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

\1. 在表達式中,char 和 short 類型的值,無論有符号還是無符号,都會自動轉換成 int 或者 unsigned int(如果 short 的大小和 int 一樣,unsigned short 的表示範圍就大于 int,在這種情況下,unsigned short 被轉換成 unsigned int)。因為它們被轉換成表示範圍更大的類型,故而把這種轉換稱為“更新(promotion)”。

\2. 按照從高到低的順序給各種資料類型分等級,依次為:long double, double, float, unsigned long long, long long, unsigned long, long, unsigned int 和 int。這裡有一個小小的例外,如果 long 和 int 大小相同,則 unsigned int 的等級應位于 long 之上。char 和 short 并沒有出現于這個等級清單,是因為它們應該已經被更新成了 int 或者 unsigned int。

\3. 在任何涉及兩種資料類型的操作中,它們之間等級較低的類型會被轉換成等級較高的類型。

🐱‍🚀選擇題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,不能正常運作      

答案是A吧

這題我認為答案錯了

因為Test類的hello方法是靜态的,是以是屬于類的,當執行個體化該類的時候,靜态會被優先加載而且隻加載一次,是以不受執行個體化new Test();影響,隻要是使用到了Test類,都會加載靜态hello方法!

另外,在其他類的靜态方法中也是可以調用公開的靜态方法,此題hello方法是使用public修飾的是以在MyApplication中調用hello也是可以的。

總結:即使Test test=null;這裡也會加載靜态方法,是以test資料中包含Test類的初始化資料。(靜态的,構造的,成員屬性)

是以test.hello是會調用到hello方法的。

🐱‍🚀選擇題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語句塊      

A選項正确,B選項,super()必須在第一行的原因是: 子類是有可能通路父類對象的, 比如在構造函數中使用父類對象的成員函數和變量, 在成員初始化使用了父類, 在代碼塊中使用了父類等等, 是以為保證在子類可以通路父類對象之前,一定要完成對父類對象的初始化。   關于this()必須在第一行的原因,我們假設這樣一種情況,,類B是類A的子類, 如果this()可以在構造函數的任意行使用, 那麼當程式運作到構造函數B()的第一行,發現沒有調用this()和super(),那麼就會自動在第一行補齊super() 來完成對父類對象的初始化, 然後傳回子類的構造函數繼續執行, 當運作到構造函數B()的"this() ;"時, 調用B類對象的構造函數, 還會對父類對象再次初始化!,這就造成了資源的浪費,以及某些意想不到的錯誤。也正因如此C選項錯誤。

D選項,無論是this()還是super()指的都是對象,而static環境中是無法使用非靜态變量的。是以D選項錯誤。

🐱‍🚀選擇題7

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

LinkedBlockingQueue是一個可選有界隊列,不允許null值
PriorityQueue,LinkedBlockingQueue都是線程不安全的
PriorityQueue是一個無界隊列,不允許null值,入隊和出隊的時間複雜度是O(log(n))
PriorityQueue,ConcurrentLinkedQueue都遵循FIFO原則      
  • A、LinkedBlockingQueue是一個基于節點連結的可選是否有界的阻塞隊列,不允許null值。

    B、LinkedBlockingQueue是一個線程安全的阻塞隊列,實作了先進先出等特性。

    C、PriorityQueue是一個***隊列,不允許null值,入隊和出隊的時間複雜度是O(log(n))。

    循FIFO原則

    ``