腾讯云Java工程师一面 + 被捞一面 + 二面面经

【一面】全程 55min

  1. 先自我介绍一下吧
  2. Java1.8 的新特性?你说到了 Lambda 表达式,你说说它的优缺点?
  3. Java 8 的 Stream 流用过吗?有什么特点?
  4. 线程池创建的方式有哪些?ThreadPoolExecuter 的参数有哪些?
  5. ArrayList 和 LinkedList 的区别在哪里?Queue 与 Deque 的区别?
  6. HashMap 和 TreeMap 区别?
  7. 假设有一个 10W 的数据请求,你会有什么方法来实现这些数据的增删改查?
  8. 数据库的三大范式是什么?
  9. MyISAM 和 InnoDB 的区别?
  10. MySQL 主键索引和普通索引的区别是什么?谁的性能更好一些?如果是在 10W 级的数据下,谁的性能更好些?
  11. 介绍一下联合索引吧?
  12. 以(a,b,c)为例,在什么情况下,单查 b 也能够命中联合索引?
  13. 算法题:手写代码实现单向链表的结构体,完成增删改查。
  14. 反问环节:你有什么问题想问我的不?

面试总结:感觉问题的题目不是太难,只怪自己太菜,基础没掌握好,面试官人不错,要是有人捞,我还想再来一次!第二天流程已结束。。
好家伙,不知道发生了什么,我又开始了新的流程,这难道就是传说中的二战!!!还是腾讯云。

【一面】全程 46min

  1. 自我介绍,
  2. 接着就是来俩算法题:题 1:统计一串字符中,重叠字符出现的次数。(如 AAABBBCC,输出 A_3_B_3_C_2)题 2:求两个字符的最长公共子串
  3. 你用过哪些数据库?MySQL 数据库的存储引擎了解过哪些?这些存储引擎的特点是什么?
  4. MySQL 默认是什么存储引擎,为啥用这个?
  5. InnoDB 和 MyISAM 的有啥区别?和 MEMORY 呢?
  6. InnoDB 为啥索引的数据结果要用 B+树?
  7. 为啥不用 Hash 索引?Hash 索引查找的时候不是更快吗?
  8. 网络编程了解过吗?说说如何创建一个 Socket 连接
  9. C++的基本数据结构了解过吗?
  10. 反问环节:你有什么问题想问我的不?

    【二面】全程 43min

    今天上午突然给我发邮件让我下午二面,这霸道总裁的通知风格。。。

  11. 看你有个比赛,你这个比赛里面做的什么?(15min)

  12. 你还写过哪些应用程序,说说看?数据存储用的什么,web 服务器用的什么?
  13. C++了解过吗?
  14. 软件设计师什么时候考的??
  15. 写过多进程和多进程吗?都在什么情况下用过?遇到了什么困难不?
  16. 有没有 Linux 下的编程经验?
  17. Linux 常用命令了解哪些?
  18. 网络编程用过吗?Sokect?
  19. Linux 中的 epoll 和 select 这些多路复用了解过吗?
  20. 说说五层网络模型吧,说说对应的协议吧
  21. 抓过网络包吗?
  22. 如果要设计一个快速插入和查找的数据结构,你会用什么结构?Hash 冲突的解决方法?
  23. 有一个容量为 N 的数组,里面存放了 N 个数,每个数的取值范围是 1~N,有没有什么快速办法判断是否有重复元素,哪个元素重复了?空间复杂度要求是 O(1)
  24. 求二叉树深度的算法呢?说说看?时间和空间尽可能的小
  25. 设计模式了解过吗?了解一下
  26. UML 类图理解的怎么样?画个类图吗?
  27. 云计算的知识了解吗?容器用过吗?大数据套件了解过吗?ELK 了解过吗?看过开源架构系统的代码吗?(这全是知识盲区啊。。。)
  28. 分布式存储了解过吗?
  29. 一个进程的栈大小是多少知道吗?打开文件的上限是多少?
  30. 你觉得你擅长做什么业务?
  31. 反问环节

总结:整个过程主动补充有点少,导致场面数次陷入安静的尴尬场面,最长的一次甚至长达 30 多秒。以后的面试还是要多多扩展自己讲的内容。

参考答案

上面的绝大部分问题,你都可以在下面的这几篇文章中找到答案。

  1. Java8 新特性实战[1]
  2. Java 线程池详解[2]
  3. Java 集合常见知识点&面试题总结(上)[3]
  4. Java 集合常见知识点&面试题总结(下)[4]
  5. 数据库基础知识[5]
  6. MySQL 知识点&面试题总结[6]
  7. MySQL 索引详解[7]
  8. 后端程序员必备的 Linux 基础知识总结[8]
  9. OSI 和 TCP/IP 网络分层模型详解(基础)[9]
  10. 《Java 面试指北》

    参考资料

    [1][2][3][4][5][6][7][8][9]
    Java8 新特性实战: https://javaguide.cn/java/new-features/java8-common-new-features.html
    Java 线程池详解: https://javaguide.cn/java/concurrent/java-thread-pool-summary.html
    Java 集合常见知识点&面试题总结(上): https://javaguide.cn/java/collection/java-collection-questions-01.html
    Java 集合常见知识点&面试题总结(下): https://javaguide.cn/java/collection/java-collection-questions-02.html
    数据库基础知识: https://javaguide.cn/database/basis.html
    MySQL 知识点&面试题总结: https://javaguide.cn/database/mysql/mysql-questions-01.html
    MySQL 索引详解: https://javaguide.cn/database/mysql/mysql-index.html
    后端程序员必备的 Linux 基础知识总结: https://javaguide.cn/cs-basics/operating-system/linux-intro.html
    OSI 和 TCP/IP 网络分层模型详解(基础): https://javaguide.cn/cs-basics/network/osi&tcp-ip-model.html