牛客java選擇題每日打卡Day24
👩💻部落格首頁:京與舊鋪的部落格首頁
✨歡迎關注🖱點贊🎀收藏⭐留言✒
🔮本文由京與舊鋪原創
😘系列專欄:java學習
👕參考網站:牛客網
💻首發時間:🎞2022年7月10日🎠
🎨你做三四月的事,八九月就會有答案,一起加油吧
🀄如果覺得部落客的文章還不錯的話,請三連支援一下部落客哦
🎧最後的話,作者是一個新人,在很多方面還做的不好,歡迎大佬指正,一起學習哦,沖沖沖
💬推薦一款模拟面試、刷題神器👉點選進入網站
🛒導航小助手🎪
文章目錄
- 牛客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 )。