第三次面试

来源:互联网 发布:东吴证券怎么样 知乎 编辑:程序博客网 时间:2024/06/16 04:31

其实我远远远远远远不够格进阿里的,当然也进不了这里很感谢一个人,我前几天问他有没有推荐的Java实习生岗位,他说他把我的简历转给HR,我回答说好了之后。也没问推荐的啥公司,结果第二天阿里就发来了内推邮件。阿里的面试应该有好几轮,所以第一轮没怎么问详细的问题,我猜我也挂了。(后来果然挂了)


面试题:
1.上万条数据怎么筛选其中一条。

  • 未解决

2.你对索引的理解

  • 索引:是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
  • 什么时候使用索引?
    • 能够提升效率的时候使用索引;
    • 在作为主键的列上,唯一性约束的列(不过大部分数据库会自动加索引);
    • 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;
    • 在经常需要排序的列上创建索引,这样查询可以利用索引的排序,加快排序查询时间;
    • 在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。
  • 什么时候不能使用索引?
    • 不能够提升效率的时候不使用索引,例如:该列很少进行查找或排序操作
  • 什么时候索引会失效?
    • 查询的结果太大,性能消耗大于使用索引
    • where里面存在!=
    • 模糊查询的时候,通配符在第一个
    • where查询null值

3.为什么要有索引
4.索引为什么而生
5.有技术博客没(叫我告诉他链接,或者是怎么搜。然后说后面再发给他。哎,都是拿不出手的东西)
6.你目前写的代码量有多少(应该指一个项目)
7.你写过的java项目里面,最得意的作品是什么,简单描述一下,描述业务场景,你服务端架构是怎样的,你用了哪些处理逻辑。
9.你的代码写完之后你是怎么来调试的,确保这段代码的质量,(写完之后难道就是跑一两条数据就完了还是怎么的?)
10.代码规范,命名规范,他说(一个良好的编码习惯会直接影响到你的编码质量)
11.代码不符合预期,怎么排查问题的
12.关于权限设计,你有哪些难点,有哪些亮点,
13.用户只能单点登录,你有什么思路


下面是我朋友之前网申的面试题

  1. 简单自我介绍,简单介绍一下做过的项目。
  2. List有哪些实现类,区别是什么,(ArrayList是如何实现动态增长的)

    • ArrayList

      • 非线程安全
      • 基于对象数组
      • get(int index)不需要遍历数组,速度快;
      • iterator()方法中调用了get(int index),所以速度也快
      • set(int index, E e)不需要遍历数组,速度快
      • add方法需要考虑扩容与数组复制问题,速度慢
      • remove(Object o)需要遍历数组,并复制数组元素,速度慢
      • remove(int index)不需要遍历数组,需要复制数组元素,但不常用
      • contain(E)需要遍历数组
    • LinkedList

      • 非线程安全
      • 基于环形双向链表
      • get(int index)需要遍历链表,速度慢;
      • iterator()方法中调用了get(int index),所以速度也慢
      • set(int index, E e)方法中调用了get(int index),所以速度也慢
      • add方法不需要考虑扩容与数组复制问题,只需创建新对象,再将新对象的前后节点的指针指向重新分配一下就好,速度快
      • remove(Object o)需要遍历链表,但不需要复制元素,只需将所要删除的对象的前后节点的指针指向重新分配一下以及将所要删除的对象的三个属性置空即可,速度快
      • remove(int index)需要遍历链表,但不需要复制元素,只需将所要删除的对象的前后节点的指针指向重新分配一下以及将所要删除的对象的三个属性置空即可,但不常用
      • contain(E)需要遍历链表

http://www.cnblogs.com/java-zhao/p/5105910.html

  1. Map有哪些实现类,区别以及内部实现,hashtable的实现方式
  2. JVM、并发、IO、开源框架、设计模式、数据库、网络(选择擅长的聊聊)
  3. (都不擅长T.T,就选择了JVM
  4. Java 会存在内存泄漏,可能会存在无意间的引用
  5. 如何判断什么是垃圾
  6. 简单说了一下 新生代、老年代 之类的
  7. 介绍了下 新生代中的垃圾回收机制
  8. 用到过什么框架
  9. 什么时候用接口、什么时候用抽象类?
    • 关于接口的理解
      • 接口更深层次的理解是:应是定义(规范,约束)与实现(名实分离的原则)的分离。
      • 系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦。
      • 接口的本身反映了系统设计人员对系统的抽象理解。
      • 参考下这篇吧http://blog.csdn.net/remember_y/article/details/49022093
  10. 看过什么类的内部实现
  11. (我说了HashMap)
  12. HashMap在多线程中的问题,简单的说了下加锁
原创粉丝点击