2015实习生面试记录

本文记录一下,个人在2015年夏季申请各个公司碰到的面试题。仅供学习和参考。

【JAVA】

1. LinkedList和ArrayList的区别。

答:

1. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构;

2. 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针; 

3. 对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据;对于末尾元素,两者的开销差不多。

2. 接口和抽象类

答:

接口是对行为的抽象,抽象类是对整体类的抽象。共同点在于它们都体现了一种抽象思维,模板思维。

区别在于

1. 语法上:

抽象类

(1) 抽象类的成员、方法可以和普通类一样,也可以有抽象方法,抽象方法的修饰符默认为public abstract,便于子类的继承;

(2) 子类继承抽象类则必须实现抽象类的所有抽象方法,一旦继承可以获得抽象类的所有普通成员变量和方法;

(3) 抽象类不能被实例化;

(4) extends关键字;

(5) 单继承;

接口

(1) 接口中可以有成员和方法,所有的成员的隐式修饰符为public static final,方法均为抽象方法,隐式修饰符为public abstract;

(2) implements关键字;

(3) 变相地实现“多继承”,有时比抽象类的使用更加灵活。

http://www.cnblogs.com/dolphin0520/p/3811437.html

http://blog.csdn.net/xw13106209/article/details/6923556

3. Java多线程

(1) 继承Thread类,本质实现runnable接口,只能单继承;

(2) 实现runnable接口;

(1) (2)实现的run()方法,无返回值。

(3) 实现Callable接口,返回一个future对象。

http://blog.csdn.net/aboy123/article/details/38307539

4. HashMap中的equals()和hashcode()方法

http://www.cnblogs.com/jisheng/archive/2011/09/03/2165536.html

【数据库】

1. 左外连接和右外连接的区别。

答:

左外连接:返回左表中的所有行,如果左表中行在右表中没有匹配行,则结果中右表中的列返回NULL。

右外连接:返回右表中的所有行,如果右表中行在左表中没有匹配行,则结果中左表中的列返回NULL。

举例

例子:   
  a表       id   name     b表     id     job   parent_id   
              1   张3                   1     23     1   
              2   李四                  2     34     2   
              3   王武                  3     34     4   
    
  a.id同parent_id存在关系   
    
  内连接   
  select   a.*,b.*   from   a   inner   join   b     on   a.id=b.parent_id   
    
  结果是     
  1   张3                   1     23     1   
  2   李四                  2     34     2   
    
  左连接   
  select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id   
    
  结果是     
  1   张3                    1     23     1   
  2   李四                  2     34     2   
  3   王武                  null   

  右连接   
  select   a.*,b.*   from   a   right   join   b     on   a.id=b.parent_id   
    
  结果是     
  1   张3                   1     23     1   
  2   李四                 2     34     2   
  null                       3     34     4   
    
  完全连接   
  select   a.*,b.*   from   a   full   join   b     on   a.id=b.parent_id   

  结果是     
  1   张3                   1     23     1   
  2   李四                 2     34     2   
  null                 3     34     4   
  3   王武                 null

扩展

详解SQL中的连接:http://blog.csdn.net/jiuqiyuliang/article/details/10474221

2. SQL基础知识

http://www.cnblogs.com/CareySon/archive/2010/04/05/1704928.html

3. Group By相关

http://www.cnblogs.com/rainman/archive/2013/05/01/3053703.html

【机器学习/数据挖掘】

1. 常见的分类算法及思想。

http://www.cnblogs.com/tornadomeet/p/3395593.html

2. 过拟合现象的产生及解决方法。

3. L1和L2正则项的区别。

4. 特征降维的方法:PCA/SVD

5. 信息增益和信息增益率的区别。

原文地址:https://www.cnblogs.com/harrygogo/p/4658449.html