我的坑

234 阅读1分钟
列出我所遇到的面试题 

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),对于效率有一定的提高。
先这样,研究过后再次细化!