天天看點

牛客java選擇題每日打卡Day20

牛客java選擇題每日打卡Day20

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

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

🔮本文由京與舊鋪原創

😘系列專欄:java學習

👕參考網站:牛客網

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

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

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

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

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

🛒導航小助手🎪

文章目錄

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

🙌選擇題1

Java語言中,下面哪個語句是建立數組的正确語句?( )

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

float f[][] = new float[6][6];
float []f[] = new float[6][6];
float f[][] = new float[][6];
float [][]f = new float[6][6];
float [][]f = new float[6][];      

C語言中的二維數組,第二個控制列,必須要有值,行可以不要!别記混了

Java中二維數組定義,一維的長度前面那個框值必須給

🙌選擇題2

What is Static Method in Java()

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

It is a method which belongs to the class and not to the object(instance)
A static method can access only static data. It can not access non-static data (instance variables)
A static method can call only other static methods and can not call a non-static method from it.
A static method can not be accessed directly by the class name and doesn’t need any object      

A:靜态方法是一個屬于類而不屬于對象(執行個體)的方法。(√)

B:靜态方法隻能通路靜态資料。無法通路非靜态資料(執行個體變量)。(√)

C:靜态方法隻能調用其他靜态方法,不能從中調用非靜态方法。(√)

D:靜态方法不能通過類名直接通路,也不需要任何對象。(×) 靜态方法可以直接用類名通路。

🙌選擇題3

下面選項中,哪些是interface中合法方法定義?()

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

public void main(String [] args);
private int getSum();
boolean setFlag(Boolean [] test);
public float get(int x);      

java程式的入口必須是static類型的,接口中不允許有static類型的方法。A項沒有static修飾符,可以作為普通的方法。而且接口中的方法必須是public的。想想借口就是為了讓别人實作的,相當于标準,标準不允許别人使用是不合理的,是以接口中的方法必須是public。C項中,接口中的方法預設是public的。D項屬于正常的方法。是以答案是:ACD

🙌選擇題4

假設num已經被建立為一個ArrayList對象,并且最初包含以下整數值:[0,0,4,2,5,0,3,0]。 執行下面的方法numQuest(),數組num會變成?

private List<Integer> nums;

//precondition: nums.size() > 0
//nums contains Integer objects
public void numQuest() {
    int k = 0;
    Integer zero = new Integer(0);
    while (k < nums.size()) {
        if (nums.get(k).equals(zero))
            nums.remove(k);
        k++;
    }
}      

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

[3, 5, 2, 4, 0, 0, 0, 0]
[0, 0, 0, 0, 4, 2, 5, 3]
[0, 0, 4, 2, 5, 0, 3, 0]
[0, 4, 2, 5, 3]      

做這種題還是要一步一步來,不然一不小心就掉坑裡:

List中的 get ( i )指的是擷取下标(索引)為 i 的元素,也就是第 i+1 個元素

本題:

zero==0,如果get(k)==0,執行remove(k); ;

size8 ; k0 , 是以第一次remove(0) ,删除索引為0的元素也就是第一個元素0,然後k++, size()–;

此時集合元素為 :**[**0,4,2,5,0,3,0]

size7; k1,是以get(1)==4 !=0 , 不執行remove(); k++,因沒有删除元素,size()不變,

此時集合元素為:**[**0,4,2,5,0,3,0]

size7;k2,k++;

size7;k3,k++;

size7;k4,get(4)==0,remove(4) ; k++, size()–;

此時集合元素為: **[**0,4,2,5,3,0]

size6;k5,get(5)==0,remove(5);k++, size()–;

此時集合元素為: **[**0,4,2,5,3]

size5; k6 ;退出循環;最終輸出此時集合元素為 **[**0,4,2,5,3] ;

一般更改删除集合元素,使用iterator()疊代器,不推薦使用這種;

🙌選擇題5

執行以下程式後的輸出結果是()

public class Test {
    public static void main(String[] args) {
        StringBuffer a = new StringBuffer("A"); 
        StringBuffer b = new StringBuffer("B"); 
        operator(a, b); 
        System.out.println(a + "," + b); 
    } 
    public static void operator(StringBuffer x, StringBuffer y) { 
        x.append(y); y = x; 
    }
}      

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

A,A
A,B
B,B
AB,B      

Java參數,不管是原始類型還是引用類型,傳遞的都是副本(有另外一種說法是傳值,但是說傳副本更好了解吧,傳值通常是相對傳址而言)。 如果參數類型是原始類型,那麼傳過來的就是這個參數的一個副本,也就是這個原始參數的值,這個跟之前所談的傳值是一樣的。如果在函數中改變了副本的 值不會改變原始的值. 如果參數類型是引用類型,那麼傳過來的就是這個引用參數的副本,這個副本存放的是參數的位址。如果在函數中沒有改變這個副本的位址,而是改變了位址中的 值,那麼在函數内的改變會影響到傳入的參數。如果在函數中改變了副本的位址,如new一個,那麼副本就指向了一個新的位址,此時傳入的參數還是指向原來的 位址,是以不會改變參數的值。

🙌選擇題6

下面有關servlet和cgi的描述,說法錯誤的是?

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

servlet處于伺服器程序中,它通過多線程方式運作其service方法
CGI對每個請求都産生新的程序,服務完成後就銷毀
servlet在易用性上強于cgi,它提供了大量的實用工具例程,例如自動地解析和解碼HTML表單資料、讀取和設定HTTP頭、處理Cookie、跟蹤會話狀态等
cgi在移植性上高于servlet,幾乎所有的主流伺服器都直接或通過插件支援cgi      

Servlet 與 CGI 的比較

和CGI程式一樣,Servlet可以響應使用者的指令(送出一個FORM等等),也可以象CGI程式一樣,收集使用者表單的資訊并給予動态回報(簡單的注冊資訊錄入和檢查錯誤)。

然而,Servlet的機制并不僅僅是這樣簡單的與使用者表單進行互動。傳統技術中,動态的網頁建立和顯示都是通過CGI來實作的,但是,有了Servlet,您可以大膽的放棄所有CGI(perl?php?甚至asp!),利用Servlet代替CGI,進行程式編寫。

對比一:當使用者浏覽器發出一個Http/CGI的請求,或者說 *調用一個CGI程式的時候,伺服器端就要新啟用一個程序* (而且是每次都要調用),調用CGI程式越多(特别是通路量高的時候),就要消耗系統越多的處理時間,隻剩下越來越少的系統資源,對于使用者來說,隻能是漫長的等待伺服器端的傳回頁面了,這對于電子商務激烈發展的今天來說,不能不說是一種技術上的遺憾。

*而Servlet充分發揮了伺服器端的資源并高效的利用。每次調用Servlet時并不是新啟用一個程序* ,而是在一個Web伺服器的程序敏感詞享和分離線程,而線程最大的好處在于可以共享一個資料源,使系統資源被有效利用。

對比二:傳統的CGI程式,不具備平台無關性特征,系統環境發生變化,CGI程式就要癱瘓,而Servlet具備Java的平台無關性,在系統開發過程中保持了系統的可擴充性、高效性。

對比三:傳統技術中,一般大都為二層的系統架構,即Web伺服器+資料庫伺服器,導緻網站通路量大的時候,無法克服CGI程式與資料庫建立連接配接時速度慢的瓶頸,進而當機、資料庫死鎖現象頻繁發生。而我們的Servlet有連接配接池的概念,它可以利用多線程的優點,在系統緩存中事先建立好若幹與資料庫的連接配接,到時候若想和資料庫打交道可以随時跟系統"要"一個連接配接即可,反應速度可想而知。

🙌選擇題7

下面哪些文法結構是正确的?

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

public class A extends B implements C
public class A implements A B
public class A implements B,C,D
public implements B      

A選項- 标準寫法,正确

public` `class` `A ``extends` `B ``implements` `C      

B選項- implements接的是接口類 而A此處的定義又是class

循環沖突,必然錯誤

public` `class` `A ``implements` `A B      

C選項- 正确,一個類可以實作多個接口(但是題目拼寫有誤- -)

public` `class` `A ``implements` `B,C,D      

D選項- 錯誤。

public` `implements` `B      

lements接的是接口類 而A此處的定義又是class

循環沖突,必然錯誤

public` `class` `A ``implements` `A B      

C選項- 正确,一個類可以實作多個接口(但是題目拼寫有誤- -)

public` `class` `A ``implements` `B,C,D      
public` `implements` `B      
結束語🏆🏆🏆
🔥推薦一款模拟面試、刷題神器網站
點選跳轉進入網站[點選進入](https://www.nowcoder.com/exam/oj?page=1&tab=%E8%AF%AD%E6%B3%95%E7%AF%87&topicId=220&fromPut=pc_csdncpt_jyjp_java)
1、算法篇(398題):面試必刷100題、算法入門、面試高頻榜單
2、SQL篇(82題):快速入門、SQL必知必會、SQL進階挑戰、面試真題
3、大廠筆試真題:位元組跳動、美團、百度、騰訊…