我的坑

少林寺三毛發表於2018-11-09
列出我所遇到的面試題 

1、有50個數子,怎樣獲取前三十個數字 

 正確答案1:可以將五十個數字放在陣列中,然後遍歷迴圈處前三十個,程式碼:

public static void main(String[] args) {
    int[] strs = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
    for (int i = 0; i < 30; i++){
        System.out.println(strs[i]);
    }
}複製程式碼

 這個都不用腦的答案,居然沒答上。。。 

正確答案2:一個一個取唄(笨) 

strs[0],strs[1].... 
複製程式碼

總結:寫每一行程式碼都要想想啊

2、單獨索引和組合(聯合)索引區別 

平時就知道怎麼去建,但是沒有想過區別,一時說不出來。。。

  • 為什麼引入:提高查詢效率 
  • 複習建索引語句
    •  oracle:單獨索引(單列建立)create (unique)index 索引名稱 on 表名(索引表欄位);
    • 組合索引(多列建立):create index 索引名稱 on 表名(欄位1,欄位2,...);
  • 組合索引:在兩個列上建立索引。只有第一個列被where自居引用時,優化器才會使用該索引,即最少要包含組合索引的第一列。最好將經常訪問的列放在前面。
 區別:
  • 複合索引可以代替多個單一索引,複合索引在資料庫操作期間所需開銷小。 
  • 對於一張表來說,如果有一個複合索引(A,B),那麼就沒有必要同事建立一個單獨索引(a)。
  • 如果查詢條件需要,可以在已有的單索引(a)的情況下新增複合索引(a,b),對於效率有一定的提高。
先這樣,研究過後再次細化!



相關文章