測試復盤1


1. IPV4中,數據包傳播方式包括以下的:廣播、單播、組播。

    IPV4不支持任播(anycast),IPV6支持。

  • 單播(unicast):     點到點一對一通信。將數據包發送到某一主機
  • 廣播(broadcast): 將數據包發送到局域網內所有主機
  • 組播(multicast):  又叫多播,傳播范圍介於單播和廣播之間。將數據包發送到加入同一組的主機

 

2. 以下關於數據庫中索引的描述正確的是()

  A. 只要允許,任何時候都應該添加索引以加快查詢速度

  B. 無論記錄多少,使用索引都能給查詢帶來性能提升

  C. 每次update/ insert/ delete操作都會導致索引被重新更新

  D. 索引可以避免全表掃描

解析:

對於那些在查詢中很少使用或者參考的列不應該創建索引。這是因為,既然這些列很少使用到,因此有索引或者無索引,並不能提高查詢速度。相反,由於增加了索引,反而降低了系統的維護速度和增大了空間需求。對於那些只有很少數據值的列也不應該增加索引。當減少索引時,會提高修改性能,降低檢索性能。因此,當修改操作遠遠多於檢索操作時,不應該創建索引。故AB錯誤。

如果update更新的列是是非主鍵和非包含時,索引不會不更新,故C錯誤。

使用索引后可以不用掃描全表來定位某行的數據,而是先通過索引表找到該行數據對應的物理地址然后訪問相應的數據。說明索引可以避免全表掃描,但不是一定避免全表掃描,故D正確。

答案:D                   參考答案:CD 

 

3. 事務的四個特性:ACID(數據庫事務正確執行的四個基本要素的縮寫):

  • 原子性(Atomicity): 原子性是指事務是一個不可再分割的工作單位,事務中的操作要么都發生,要么都不發生。
  • 一致性(Consistency):一致性是指在事務開始之前和事務結束以后,數據庫的完整性約束沒有被破壞。這是說數據庫事務不能破壞關系數據的完整性以及業務邏輯上的一致性。
  • 隔離性(Isolation):隔離性是指並發的事務是相互隔離的。即一個事務內部的操作及正在操作的數據必須封鎖起來,不被企圖進行修改的事務看到 。
  • 持久性(Durability):持久性是指在事務完成以后,該事務所對數據庫所作的更改便持久的保存在數據庫之中,並不會被回滾。 即使出現了任何事故比如斷電等,事務一旦提交,則持久化保存在數據庫中。

 

4. 軟件工程是一種自頂向下分階段實現的軟件工程開發的方法。

 

5. Linux操作系統中有如下的文件結構:

  $HOME/aaa

  $HOME/aaa/bb/a.txt

  $HOME/aaa/my.c

  請問如果要刪除aaa文件夾,要執行的操作是:()

    A. rm -rf $HOME/aaa

    B. rmdir -f $HOME/aaa

    C. rmdir $HOME/aaa

    D. rm $HOME/aaa

解析:linux下rm和rmdir的區別和使用:

   一、rmdir:刪除一個空的目錄

    rmdir 1 2:一次刪除了空目錄1、2(一次刪除兩個目錄,用空格分開)

 

 

    1. -v選項:提示

       rmdir -v dirname  結果: 操作成功后都會有提示信息。

    2.-p選項:級聯刪除

      ①目錄1122/1

      rmdir -p -v 1122/1  結果:先刪除1122/1,再刪除1122。

      ②目錄1122/1  1122/2

 

         rmdir -p -v 1122/1  結果:刪除1122/1,再刪除1122時錯誤,因為此時1122不是空文件夾。

   二、rm:刪除文件或者目錄(不能直接刪目錄)

    -r 表示遞歸,即刪除文件夾及其子文件和子文件夾。

    -f 表示force即暴力,無視提示信息

    1. -f選項:不管目錄下的文件存在不存在,都不給予提示

 

      目錄1122/1/a,1122/1為目錄,a為文件

      ① rm -f 1122/1  結果:提示1122/1為目錄,不能刪除

      ② rm 1122/1/a  結果:成功,但是沒有任何提示

 

      ③ rm -f 1122/1/a  結果:成功,但是沒有任何提示

      ④ rm 1122/1/b  結果:提示無法刪除1122/1/b:沒有那個文件或目錄

      ⑤ rm -f 1122/1/b 結果:1122/1/b不存在,但是沒有任何提示

     2. -rf 組合刪除:刪除該目錄以及該目錄下的所有文件

      目錄1122/1/a  1122/2

      rm -rf -v 1122 結果:先刪1122/1/a再刪1122/1,再刪1122/2最后刪1122

答案:A

 

6. 執行如下程序代碼后,sum的值是()

char chr = 127;
int sum = 200;
chr += 1;
sum += chr;

A. 72  B. 99  C. 328  D. 327

解析:C語言中char類型可以看作是一個1個字節(8個位)的低精度整型。以整數角度來看,它能表示的整數范圍是:-128~127,當chr += 1之后,此時chr的值變成128,但是這時候發生了溢出。chr的值為-128,所以sum+=chr為:200-128=72。

Java語言中,char類型占兩個字節,答案為328。

 

 

7. 下面可用於字符串復制的函數有:

A. strcpy  B. sprintf  C. strcmp  D. strstr  E. memcpy

解析:strcpy:將一個字符串復制給另一個字符串;

   sprintf:將結果寫入字符串緩沖區。

   strcmp:字符串比較函數

   strstr:求子串的函數

   memcpy:內存拷貝函數

答案:ABE

 

8. linux操作系統中,修改用戶密碼的命令是passwd。

 

9. 

 

 

解析:Linux系統下使用chmod命令修改文檔及文件夾權限:參考博客:https://blog.csdn.net/gingerredjade/article/details/8147120

  1. 此命令有兩種使用方法,一種是chmod后加數字,后接文件名:

    chmod abc file

  其中a,b,c各為一個數字,分別表示User、Group、及Other的權限。

  r=4,w=2,x=1

  若要rwx屬性則4+2+1=7;

  若要rw-屬性則4+2=6;

  若要r-x屬性則4+1=5。

  2另一種是chmod后邊加字母,后接文件名

  綜上所述,當想用chmod命令來改變權限時,文件的用戶身份主要有如下幾類:

   u:擁有文件的用戶(所有者);

   g:所有者所在的組群;

   o:其他人(不是所有者或所有者的組群);

   a:每個人或全部(u、g、和o)。

  用戶所具有的文件訪問權限類型如下:

   r:讀取權;

   w:寫入權;

   x:執行權。

  文件權限配置行為有如下幾類:

   +:添加權限;

   -:刪除權限;

   =:使它成為惟一權限。

答案:C

 

10.

 

 

答案:全選

 

11. 下列關於Java集合類的相關描述正確的是()

A. Collection是最基本的集合接口,JDK中提供的集合類如List、Map等都是繼承自Collection的子接口

B. ArrayList和LinkedList都實現了List接口,且他們都是線程同步的

C. Set是一種不包含重復的元素的Collection

D. HashMap可以通過hashcode對其內容進行快速查找

解析:Map不是繼承自Collection的子接口,故A錯;ArrayList和LinkedList不是線程同步的,故B錯。

答案:CD

 

12. 單例模式中,兩個基本要點是:構造函數私有唯一實例

 

13. Linux文件權限一共10位長度,例如“drwxr-xr-x”,分為四部分,第三部分的xr表示的內容是()。

A. 文件所有者有讀權限

B. 文件所有者有執行權限

C. 文件所有者所在組的有讀權限

D. 文件所有者所在組的執行權限

解析:Linux文件權限:

 文件權限十位(九位rwx):

 

第一位字母(表示文件類型) 文件類型
d 目錄(文件夾)
l 鏈接
- 文件
b 表示里面可以供存儲周邊設備
c 表示里面為一次性讀取裝置

 

9位rwx從左到右 rwx   讀、寫、執行 rwx rwx
所有者 root(文件所有者) group(文件所有者所在組) user(其他人)

參考博客:https://blog.csdn.net/learningning/article/details/78856869https://blog.csdn.net/asd8705/article/details/51893134

答案:CD 

 

 

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

A. Public void main(String [] args);

B. private int getSum();

C.boolean setFlag(Boolean [] test);

D. public float get(int x);

解析:接口中的常量和方法必須是public的訪問權限,故B錯誤,D正確。A中無static,只是方法名稱和參數名稱取的比較特殊的方法,故A正確。C沒有顯示標明訪問修飾符,接口中的方法默認是public的,故C正確。

答案:ACD

 

15. 下述程序的輸出結果為()。

public class foo {]

    public static void main(String sgf[]) {
        StringBuffer a=new StringBuffer(“A”);
        StringBuffer b=new StringBuffer(“B”);
        operate(a,b);
        System.out.println(a+”.”+b);
    }

    static void operate(StringBuffer x,StringBuffer y) {
        x.append(y);
        y=x;
    }
}    

A. 輸出“B”  B.輸出“A,A”  C.輸出“AB,B”  D. 輸出“AB,AB”

解析:Stringbuffer 有append()方法 

    Stringbuffer其實是動態字符串數組 

    append()是往動態字符串數組添加,跟“xxxx”+“yyyy”相當那個‘+’號 

  本題中,operate方法效果為:在x所指向的動態字符串數組“A”后添加y動態字符串數組中的值“B”,值變為“AB”,再將y指向x數組。此時,a所表示的動態字符串數組為“AB”,而b所表示的動態字符串數組無變化,仍為“B”。

答案:C

PS:Java中對於+和append拼接字符串效率的誤解

 

16. 方法通常存儲在進程中的哪一區()

A. 堆區  B. 棧區  C. 全局區  D. 方法區

解析:java內存模型:

1,程序計數器:標記當前線程執行的字節碼,用於線程切換能恢復到正確位置,是線程私有的。

2,虛擬機棧(有的也叫java棧):存儲基本數據類型和對象引用、存儲局部變量表、操作數棧、動態鏈接和方法出口等,也是線程私有的。

3,本地方法棧:為本地方法服務的棧。

4,堆(heap):主要用來存儲對象的實例,也是垃圾回收的主要對象,是線程公共的。

5,方法區:用於存儲被虛擬機加載的類的信息、常量、靜態變量等數據。

博客:史上最詳細JVM,Java內存區域講解

答案:D

 

17. 有時為了避免某些未識別的異常拋給更高的上層應用,在某些接口實現中我們通常需要捕獲編譯運行期所有的異常,catch下述哪個類的實例才能達到目的:()

A. Error  B. Exception  C. RuntimeException  D. Throwable

解析:error是系統出錯,catch是無法處理的,難以修復的,RuntimeException不需要程序員進行捕獲處理,error和exception都是throwable的子類,我們只需要對exception的實例進行捕獲即可 

參考博客:https://blog.csdn.net/shujuelin/article/details/82835506

答案:B

 

18. 

void foo(void) { 
    unsigned int a = 10; 
    int b = -20; 
    (a+b > 10) puts("> 10") : puts("<= 10")
}

輸出的是什么

A. > 10  B. <= 10

解析:如果整型變量間進行數據運算,只要有一個變量是無符號的,結果就按無符號數據計算。

答案:A

 

19. 以下運行結果:

for(var i = 0; i < 10; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}

 

A. 0--9  B.10個10  C.10個9  D.無限循環

解析:setTimeout是異步的,setTimeout中的閉包函數是每1s執行一次,由於for循環的執行速度遠小於1s,所以當開始執行閉包函數的時候for循環已經結束了(i=10),之后閉包函數執行十次(因為循環了10次),所以打印了10個10。

答案:B

 

 

20. Java中,有繼承關系時,變量隱藏的原則?

子類中變量名與繼承自父類的變量名相同時,則繼承自父類的變量將被隱藏。 4、Java中,有繼承關系時,方法重寫原則? 

重寫后的方法不能比被重寫的方法有更嚴格的訪問權限(可以相同) 

改寫后的方法不能比重寫的方法產生更多的例外(異常) 5、Java中,super關鍵字的作用? 調用構造方法: 

Super()必須是子類構造函數第一個執行的語句,如果super()沒有被用到,每個超類的默認的或無參數的構造函數將被執行。

調用被隱藏變量及方法: 

 

可通過super關鍵字調用被隱藏的父類中的變量及方法。

 

21.  Java中,是否支持多繼承?

不支持多繼承,允許多層繼承

 

22. 重載方法是如何進行匹配的?

在方法調用進行匹配的時候,首先選擇直接匹配的方法;如果沒有則將參數進行提升轉換后再匹配方法,總是匹配最接近的方法 

對於基本數據類型而言,就是按照基本數據類型間的自動轉換關系,將傳遞的參數進行自動轉換,並尋找最匹配的一個方法 

 

對於對象應用類型而言,則按照繼承樹向上轉型的方式,將傳遞的參數進行自動轉換, 並尋找最匹配的一個方法 

 

23. 一個引用類型的變量可以指向哪些對象?

一個引用類型的變量可以指向由其本類所構造出來的對象,還可以指向由其子類及子孫類所構造出來的對象。

 

24. 什么時候為類中的實例變量分配內存空間?

在使用類創建實例對象時會為其分配空間。(通過new關鍵字和構造函數為其實例化的時候)

 

 

 

1此命令有兩種使用方法,一種是chmod后加數字,后接文件名
chmodabcfile
其中a,b,c各為一個數字,分別表示User、Group、及Other的權限。
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM