作业帮后端开发实习生面经

一面

  • 闲聊,自我介绍

  • int和Integer的区别,为什么有了int还需要Integer

  • ArrayList和LinkedList区别,各有什么特点

  • 进程和线程的区别,联系

  • 多线程编程,死锁检测与预防,死锁的检测手段,怎样避免死锁

  • 讲一讲线程池,讲讲为什么很多公司对于线程池的使用非常谨慎

  • SQL代码书写:有一个学生信息表包含id,学号,选修课程和该课程的成绩,写一个SQL语句来查找总分最高的前十名同学。

  • 建表过程中索引添加的规范

  • InnoDB的4种事务隔离级别

  • SSM和Spring Boot的比较,Spring Boot的缺点(没答上来,面试官的解释是Spring Boot封装层数过多导致的性能问题)

  • 假如有10亿个手机号,怎么样快速判断一个手机号是否在其中(一开始没什么好的思路,面试官一步一步从hash,二分,布隆过滤器引导到位图)

  • 机智题:烧完一整根香需要30分钟,怎么样得到15分钟的计时,怎么样得到7.5分钟的计时

  • 可以实习的时间,介不介意转语言,反问

  • 一面大概40分钟左右,更多的都是基础问题,面试官人超级和蔼,没想出来的问题会先给你一些引导,面试体验极佳!

二面

  • 聊了聊项目

  • 算法题:把数组中奇数放在前面,偶数放在后面,并且奇数偶数都要保证从小到大,要求空间复杂度O(1)

  • MySQL索引结构,说说B树和B+树的区别

  • MySQL索引什么时候失效,联合索引,聚集索引

  • 写一个单例模式

  • Redis数据结构,场景题

  • 讲讲Java的堆内存、GC

  • 说说抽象类和接口的区别

  • 浏览器输入URL地址到页面渲染发生的过程

  • 三次握手,为什么要三次握手

  • 算法题:找出数组中第K大的数