置顶] 2017 暑期实习校园招聘(Java后台开发方向)面经分享



分享一下我这两个月里找暑期实习过程中记录总结的面试经验吧,希望能对大家有所帮助。

  1. 本人研二,电子科学与技术专业,本科电子信息科学与技术专业,有三个多月的java开发实习经验,暑期实习投递的是Java研发工程师/后台开发工程师职位。编程语言熟悉情况以Java为主,熟悉Spring和MyBatis等框架,会用maven、git等工具。算法基础薄弱,Java基础扎实。
  2. 面试经验包括 阿里巴巴、京东、腾讯、搜狗、搜狐、百度、小米、去哪儿网这几家公司。
  3. 电话面试、现场面试和视频面试都是回忆版,不怎么完整。所以问题少的并不一定是问的少
  4. 基本各家企业都有安排笔试,笔试主要是在赛码网和牛客网上进行。笔试有难有易,主要是基础知识选择题加编程算法题
  5. 面试题有些我没有答上来,有些没有答对,所以我的回答就不贴出来了,基本只要百度查阅一下就会有详细答案


公司1:阿里巴巴

result:二面跪

阿里巴巴的电话面试,一面聊得还算比较开心,二面就彻底失败,面试官问的都没咋听说过,立马跪。

  1. 一面
    1. 自我介绍
    2. 做过哪些项目?怎么实现的?
    3. 蓝牙自动配对怎么实现的?
    4. 公司整体架构?数据来源流程?你做了啥?
    5. 后台系统使用什么技术实现的?
    6. spring mvc和struts mvc的区别
    7. 抽象类和接口的区别?
    8. 覆盖和重载
    9. 进程和线程的区别
    10. 线程有哪些状态
    11. 如何创建线程?
    12. wait和sleep的区别
    13. 集合有那几种?list和set的区别?
    14. hashmap的实现,冲突,初始容量和加载因子?怎么扩容?
    15. 如何取出hashmap中的value存入list中?
    16. spring的aop和Ioc讲讲
    17. 快速排序怎么实现的?
    18. 数据库索引为什么用B树?原理
    19. 数据库的锁有哪几种?语句怎么实现
    20. 数据库分页查询
    21. 数据库的搜索引擎
    22. tcp和udp的区别
    23. 在公司实习你学到了啥?工作方面和技术方面
    24. 你有没有继续研究新接触到的技术?
    25. 你有什么学习方法吗?
    26. 你在实习的时候最大的收获?
    27. 你的博客都写了啥?值得说说的。
  2. 二面
    1. 自我介绍
    2. shixi最大的收获
    3. 专利
    4. JDK8和之前的优化
    5. JDBC是单例还是多例
    6. JDBC和MyBatis
    7. 布隆过滤器
    8. ThreadLocal
    9. Atomic关键字
阿里总结:阿里的职位是Java研发工程师,而且听闻阿里确实比百度和腾讯有更多的地方用Java来开发后台。所以,感觉阿里其实面试官的水平很好,能够全面完整的考察每一个应聘者,二面挂,只能说明自己的实力确实菜了点。
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司2:京东
result:拿到Offer

京东现场面试,总共跑了3趟。全程都比较顺畅,聊天聊得愉快。
  1. 初面
    1. 浏览器中输入www.jd.com之后都发生了什么?
    2. 说说事务吧,事务的四大特性,四大隔离级别
    3. 说说spring吧
    4. 写个设计模式吧(单例除外)
    5. 写个排序算法吧
    6. 什么因素会影响到你选择不同种类的排序算法
    7.  一个库存变量,多个线程需要操作,如何保证正确性?
    8. 一台机器压力太大了,又给你分配了5台机器,你如何使用这些机器?
    9. 创建100个线程,如何使得这100个线程几乎同时启动?
  2. 复试
    1. sql语句
      两个比较器
      以后的定位
      阿里抢月饼事件的看法
      联调,对方没时间
  3. HR面试
    1. 什么时间来shixi,shixi多久?
    2. 你的性格
    3. 你的业余爱好
    4. 为什么选择jd
    5. 现在有offer吗
京东总结:京东招聘的职位也是Java研发工程师,所以2个面试官都是搞java开发的。京东的问题感觉不算太难。
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司3:腾讯
result:一面跪

腾讯现场面试,面试官应该是搞C++后台开发的,与java相关的一个不问,随便问了几个就打发我走了。(不服)

一面
  1.  分布式知识spark
  2. 布隆过滤器
  3. 合并有序链表
  4. KMP算法
  5. having的用法,和where的区别
  6. mysql和sqlserver的区别有哪些
腾讯总结:腾讯的职位是:后台开发工程师,那这就不好办了,你的面试官很有可能是搞C++开发的,聊起来特别费劲,因为自己最擅长的是java呀,面试官一个java相关的都不聊。聊聊算法等其他知识,那指定跪。。。
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司4:搜狗
result:一面跪

搜狗面试,答得一般般,唠嗑倒是不别扭,就是答得一般般,借口二面面试官在开会,打发我走了。

一面
  1. 单例模式和注解单例模式区别
  2. 单链表反转
  3. 多线程包concurrent
  4. kafka分区
  5. maven的打包命令
  6. git完全撤销
  7. 内存调优工具
  8. 内存泄露和内存溢出
  9. 模板模式
  10. 拆箱装箱
  11. 控制反转
  12. AOP的两种实现
  13. hashmap扩容过程
  14. mybatis中#和$的区别?危险注入问题
搜狗总结:不看简历,他们需要什么技术,就问你什么技术。。。
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
公司5:去哪儿网
result:拿到Offer

 一面:
  1. 项目相关,讲讲
  2. 数据存储结构有哪些?
  3. currentHashMap和HashMap的区别
  4. 解决hash冲突的方法有哪些?
  5. HashMap中如何解决hash冲突
  6. 数据库SQL语句
  7. limit的使用相关
  8. Java中的异常分类
  9. 说说Spring
  10. 说说MyBatis的使用
  11. JVM内存管理和回收机制
  12. 算法题:输入一组数。拼接成一个最大的数输出!!!
二面:
  1. 滑动窗口
  2. 单链表有环推导公式
  3. LRU算法,最近被使用算法,使用链表实现一个,
  4. 最后使用了
  5. 实现
  6. 数据库索引作用,实现的数据结构,画出B+树
  7. 事务的作用是什么?答:保证数据的一致性
  8. 接口和抽象类的区别
  9. 布隆过滤器
  10. linux相关命令
  11. 进程之间如何通信?
  12. 进程和线程的区别
  13. 线程是否越多越好?资源和内存的问题考虑
  14. 线程是否有独占的资源?有,threadlocal变量
  15. 专业相关问题,以后的方向


---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
公司6:搜狐汽车
result:逗逼公司

逗逼公司,等了快一个小时,HR是个2逼,结果面试官也是个逗逼,问问题把自己也能绕进去,之后,随便问了几个就送客了。不招人就别约面试么。
  1. 两数组,输出a中不在b中的元素
  2. N个数,求最大值
  3. 扑克牌
  4. spring说说
  5. 项目讲讲
  6. HashMap的取操作的时间复杂度
  7. 链表相交
  8. 重点在时间复杂度上


---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司7:搜狐自媒体部门
result:拿到Offer

  1. 讲讲shixi项目
    1. 提了一些问题
  2. 讲了spark streaming计算原理和过程
  3. kafka的相关东西,
    1. 为什么要在topic下分区,每个partition可以在不同的broker上吗?
    2. kafka为什么可以快速持久化
  4. Spring的IOC机制,spring容器如何创建对象?
  5. SpringMVC的消息处理流程,DispatchServlet控制器在哪里配置?
  6. 数据库的索引使用什么数据结构?
  7. 数据库存储引擎有哪些,区别
  8. AOP
    1. 动态代理和静态代理的区别
    2. 动态代理怎么实现的,如何得到被代理类的所有方法
  9. 分K组来反转单链表


---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司8:百度
result:一面跪

百度面试,感觉自己受到了侮辱。面试官是搞PHP的,刚开始就问贼难的问题,与java相关的一个不问,之后再问简单的算法题,但是脑子就蒙圈了,就不难从易到难问问题吗?(妈的,贼不爽了。)
  1. 实习项目聊聊,在聊的过程中会不断的提问,针对各个实现的地方。
  2. 100亿个网址,如何去重?
  3. git用过是吧?让你设计实现一个git diff的算法,你会怎么实现?
  4. Linux中如何查看线程状态?指定一个线程怎么查看?
  5. 网络编程Socket讲讲。
  6. set的底层数据结构是什么?
  7. 手写单例模式。
  8. TCP和UDP的区别?丢包重传的次数?
  9. 死锁的四个必要条件
  10. 具体案例,如何避免死锁?某个线程只有获得A锁和B锁才能对某资源进行操作,在多线程条件下,如何避免死锁?
  11. 找出一个数组中的多数元素?追问,时间复杂度可以再小吗?
  12. 自己实现一个String2Int的算法。

---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司9:小米科技
result:二面跪

一面出来一个搞前端的,简单说了下实习项目,之后就开始写起了算法。
        算法1:输入一个整数,打印出所有符合条件的有效括号。
        算法2:二叉树的前序遍历的变种形式。

二面出来的好像也不是搞Java开发的,不过确实是个搞后台开发的。
  1. 进程通信,如何分配资源?
  2. 分布式相关的知识,比如kafka、spark和Hadoop等知识,往深聊,这指定跪。。。
  3. 青蛙跳台阶算法题


笔试跪的公司有:360、网易、今日头条


分享一下我这两个月里找暑期实习过程中记录总结的面试经验吧,希望能对大家有所帮助。

  1. 本人研二,电子科学与技术专业,本科电子信息科学与技术专业,有三个多月的java开发实习经验,暑期实习投递的是Java研发工程师/后台开发工程师职位。编程语言熟悉情况以Java为主,熟悉Spring和MyBatis等框架,会用maven、git等工具。算法基础薄弱,Java基础扎实。
  2. 面试经验包括 阿里巴巴、京东、腾讯、搜狗、搜狐、百度、小米、去哪儿网这几家公司。
  3. 电话面试、现场面试和视频面试都是回忆版,不怎么完整。所以问题少的并不一定是问的少
  4. 基本各家企业都有安排笔试,笔试主要是在赛码网和牛客网上进行。笔试有难有易,主要是基础知识选择题加编程算法题
  5. 面试题有些我没有答上来,有些没有答对,所以我的回答就不贴出来了,基本只要百度查阅一下就会有详细答案


公司1:阿里巴巴

result:二面跪

阿里巴巴的电话面试,一面聊得还算比较开心,二面就彻底失败,面试官问的都没咋听说过,立马跪。

  1. 一面
    1. 自我介绍
    2. 做过哪些项目?怎么实现的?
    3. 蓝牙自动配对怎么实现的?
    4. 公司整体架构?数据来源流程?你做了啥?
    5. 后台系统使用什么技术实现的?
    6. spring mvc和struts mvc的区别
    7. 抽象类和接口的区别?
    8. 覆盖和重载
    9. 进程和线程的区别
    10. 线程有哪些状态
    11. 如何创建线程?
    12. wait和sleep的区别
    13. 集合有那几种?list和set的区别?
    14. hashmap的实现,冲突,初始容量和加载因子?怎么扩容?
    15. 如何取出hashmap中的value存入list中?
    16. spring的aop和Ioc讲讲
    17. 快速排序怎么实现的?
    18. 数据库索引为什么用B树?原理
    19. 数据库的锁有哪几种?语句怎么实现
    20. 数据库分页查询
    21. 数据库的搜索引擎
    22. tcp和udp的区别
    23. 在公司实习你学到了啥?工作方面和技术方面
    24. 你有没有继续研究新接触到的技术?
    25. 你有什么学习方法吗?
    26. 你在实习的时候最大的收获?
    27. 你的博客都写了啥?值得说说的。
  2. 二面
    1. 自我介绍
    2. shixi最大的收获
    3. 专利
    4. JDK8和之前的优化
    5. JDBC是单例还是多例
    6. JDBC和MyBatis
    7. 布隆过滤器
    8. ThreadLocal
    9. Atomic关键字
阿里总结:阿里的职位是Java研发工程师,而且听闻阿里确实比百度和腾讯有更多的地方用Java来开发后台。所以,感觉阿里其实面试官的水平很好,能够全面完整的考察每一个应聘者,二面挂,只能说明自己的实力确实菜了点。
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司2:京东
result:拿到Offer

京东现场面试,总共跑了3趟。全程都比较顺畅,聊天聊得愉快。
  1. 初面
    1. 浏览器中输入www.jd.com之后都发生了什么?
    2. 说说事务吧,事务的四大特性,四大隔离级别
    3. 说说spring吧
    4. 写个设计模式吧(单例除外)
    5. 写个排序算法吧
    6. 什么因素会影响到你选择不同种类的排序算法
    7.  一个库存变量,多个线程需要操作,如何保证正确性?
    8. 一台机器压力太大了,又给你分配了5台机器,你如何使用这些机器?
    9. 创建100个线程,如何使得这100个线程几乎同时启动?
  2. 复试
    1. sql语句
      两个比较器
      以后的定位
      阿里抢月饼事件的看法
      联调,对方没时间
  3. HR面试
    1. 什么时间来shixi,shixi多久?
    2. 你的性格
    3. 你的业余爱好
    4. 为什么选择jd
    5. 现在有offer吗
京东总结:京东招聘的职位也是Java研发工程师,所以2个面试官都是搞java开发的。京东的问题感觉不算太难。
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司3:腾讯
result:一面跪

腾讯现场面试,面试官应该是搞C++后台开发的,与java相关的一个不问,随便问了几个就打发我走了。(不服)

一面
  1.  分布式知识spark
  2. 布隆过滤器
  3. 合并有序链表
  4. KMP算法
  5. having的用法,和where的区别
  6. mysql和sqlserver的区别有哪些
腾讯总结:腾讯的职位是:后台开发工程师,那这就不好办了,你的面试官很有可能是搞C++开发的,聊起来特别费劲,因为自己最擅长的是java呀,面试官一个java相关的都不聊。聊聊算法等其他知识,那指定跪。。。
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司4:搜狗
result:一面跪

搜狗面试,答得一般般,唠嗑倒是不别扭,就是答得一般般,借口二面面试官在开会,打发我走了。

一面
  1. 单例模式和注解单例模式区别
  2. 单链表反转
  3. 多线程包concurrent
  4. kafka分区
  5. maven的打包命令
  6. git完全撤销
  7. 内存调优工具
  8. 内存泄露和内存溢出
  9. 模板模式
  10. 拆箱装箱
  11. 控制反转
  12. AOP的两种实现
  13. hashmap扩容过程
  14. mybatis中#和$的区别?危险注入问题
搜狗总结:不看简历,他们需要什么技术,就问你什么技术。。。
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
公司5:去哪儿网
result:拿到Offer

 一面:
  1. 项目相关,讲讲
  2. 数据存储结构有哪些?
  3. currentHashMap和HashMap的区别
  4. 解决hash冲突的方法有哪些?
  5. HashMap中如何解决hash冲突
  6. 数据库SQL语句
  7. limit的使用相关
  8. Java中的异常分类
  9. 说说Spring
  10. 说说MyBatis的使用
  11. JVM内存管理和回收机制
  12. 算法题:输入一组数。拼接成一个最大的数输出!!!
二面:
  1. 滑动窗口
  2. 单链表有环推导公式
  3. LRU算法,最近被使用算法,使用链表实现一个,
  4. 最后使用了
  5. 实现
  6. 数据库索引作用,实现的数据结构,画出B+树
  7. 事务的作用是什么?答:保证数据的一致性
  8. 接口和抽象类的区别
  9. 布隆过滤器
  10. linux相关命令
  11. 进程之间如何通信?
  12. 进程和线程的区别
  13. 线程是否越多越好?资源和内存的问题考虑
  14. 线程是否有独占的资源?有,threadlocal变量
  15. 专业相关问题,以后的方向


---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
公司6:搜狐汽车
result:逗逼公司

逗逼公司,等了快一个小时,HR是个2逼,结果面试官也是个逗逼,问问题把自己也能绕进去,之后,随便问了几个就送客了。不招人就别约面试么。
  1. 两数组,输出a中不在b中的元素
  2. N个数,求最大值
  3. 扑克牌
  4. spring说说
  5. 项目讲讲
  6. HashMap的取操作的时间复杂度
  7. 链表相交
  8. 重点在时间复杂度上


---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司7:搜狐自媒体部门
result:拿到Offer

  1. 讲讲shixi项目
    1. 提了一些问题
  2. 讲了spark streaming计算原理和过程
  3. kafka的相关东西,
    1. 为什么要在topic下分区,每个partition可以在不同的broker上吗?
    2. kafka为什么可以快速持久化
  4. Spring的IOC机制,spring容器如何创建对象?
  5. SpringMVC的消息处理流程,DispatchServlet控制器在哪里配置?
  6. 数据库的索引使用什么数据结构?
  7. 数据库存储引擎有哪些,区别
  8. AOP
    1. 动态代理和静态代理的区别
    2. 动态代理怎么实现的,如何得到被代理类的所有方法
  9. 分K组来反转单链表


---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司8:百度
result:一面跪

百度面试,感觉自己受到了侮辱。面试官是搞PHP的,刚开始就问贼难的问题,与java相关的一个不问,之后再问简单的算法题,但是脑子就蒙圈了,就不难从易到难问问题吗?(妈的,贼不爽了。)
  1. 实习项目聊聊,在聊的过程中会不断的提问,针对各个实现的地方。
  2. 100亿个网址,如何去重?
  3. git用过是吧?让你设计实现一个git diff的算法,你会怎么实现?
  4. Linux中如何查看线程状态?指定一个线程怎么查看?
  5. 网络编程Socket讲讲。
  6. set的底层数据结构是什么?
  7. 手写单例模式。
  8. TCP和UDP的区别?丢包重传的次数?
  9. 死锁的四个必要条件
  10. 具体案例,如何避免死锁?某个线程只有获得A锁和B锁才能对某资源进行操作,在多线程条件下,如何避免死锁?
  11. 找出一个数组中的多数元素?追问,时间复杂度可以再小吗?
  12. 自己实现一个String2Int的算法。

---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------

公司9:小米科技
result:二面跪

一面出来一个搞前端的,简单说了下实习项目,之后就开始写起了算法。
        算法1:输入一个整数,打印出所有符合条件的有效括号。
        算法2:二叉树的前序遍历的变种形式。

二面出来的好像也不是搞Java开发的,不过确实是个搞后台开发的。
  1. 进程通信,如何分配资源?
  2. 分布式相关的知识,比如kafka、spark和Hadoop等知识,往深聊,这指定跪。。。
  3. 青蛙跳台阶算法题


笔试跪的公司有:360、网易、今日头条


你可能感兴趣的:(置顶] 2017 暑期实习校园招聘(Java后台开发方向)面经分享)