列出我所遇到的面試題
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),對於效率有一定的提高。