├── readme.md ├── 头条 ├── 抖音一面(简历面).md ├── 抖音三面(视频二面).md ├── 抖音二面(视频一面).md └── 抖音四面(视频三面).md ├── 腾讯 ├── 腾讯HR面.md ├── 腾讯一面.md └── 腾讯二面.md └── 阿里 ├── 阿里HR面.md ├── 阿里一面.md ├── 阿里三面.md ├── 阿里二面.md └── 阿里四面.md /readme.md: -------------------------------------------------------------------------------- 1 | 记录下春招实习面经。 2 | 3 | 基本都是后台开发或者Java后端开发。 4 | 很多还都正在面,更新会比较慢。 5 | 6 | 欢迎star/watch。 7 | -------------------------------------------------------------------------------- /头条/抖音一面(简历面).md: -------------------------------------------------------------------------------- 1 | 1. 简单介绍下项目(米课)吧 2 | 2. 米课你们是怎么分工合作的?细化的需求从哪里来的? 3 | 3. 后端数据库如何设计的? 4 | 4. 介绍下有哪些表?哪些字段上面加上了索引? 5 | 5. 你了解聚簇索引嘛? 6 | 6. 讲一讲联合索引? 7 | 7. 数据库事务有哪些隔离级别? 8 | 8. 讲一讲MySQL的master-slave(跪) 9 | 9. 讲一讲数据库的MVCC(跪) 10 | 10. 讲一讲ARP协议 11 | 11. 学编译原理了嘛?一个程序到二进制可执行文件的流程是什么? 12 | 12. 讲一讲静态链接和动态链接 13 | 13. 讲一讲MMU(以及计组中Cache、分页机制等杂七杂八的东西) 14 | 14. Java有哪些粒度的锁? 15 | 15. 在方法上加锁和对对象加锁有哪些底层实现上的区别? 16 | 16. HashMap和HashTable的区别? 17 | 17. HashTable如何实现线程安全? 18 | 18. HashMap的实现是怎样的? 19 | 19. ConcurrentHashMap如何保证线程安全? 20 | 20. LRU如何实现? 21 | 21. 如果在LRU的基础上,每个元素还可以设置过期时间,那么应该如何设计有关的数据结构? 22 | 22. Redis中的LRU如何实现? 23 | 23. 还有什么想问我的? -------------------------------------------------------------------------------- /头条/抖音三面(视频二面).md: -------------------------------------------------------------------------------- 1 | 1. 数据库的事务有哪些? 2 | 2. 正向代理和反向代理有了解过吗?有哪些区别? 3 | 3. 输入一个 URL,到获取界面信息都有哪些过程? 4 | 4. DNS 获取失败了,浏览器有什么机制(来获取DNS)? 5 | 5. HTTPS 有了解过吗?大概的原理是什么样的呢? 6 | 6. volatile 关键字有哪些作用?能够做哪些事?举例? 7 | 7. WebApplicationContext 的初始化流程? 8 | 8. Spring MVC 如何解析到请求对应哪个 RequestHandler? 9 | 9. 数据库连接池了解吗?大概讲一下? 10 | 10. 对象钝化了解吗?大概讲一下? 11 | 12 | (问的很多问题我都不记得了) 13 | 14 | 10. 写个算法题吧:二叉树 Z 型打印,分析复杂度。 15 | 16 | 面了大概40分钟。结束后就让我吃饭去,8点继续面。 17 | 18 | 这边忘了很多,因为面了接近2小时,已经很疲惫了。 -------------------------------------------------------------------------------- /头条/抖音二面(视频一面).md: -------------------------------------------------------------------------------- 1 | 1. Java 的有序的数据集合有了解过吗? 2 | 2. TreeSet 底层实现是怎样的呢? 3 | 3. 为什么使用红黑树而非 AVL 树? 4 | 4. 堆和二叉树又有什么区别? 5 | 5. 你对 Java 中延迟执行的库有了解嘛?如果让你去实现,你怎么实现?(我说在操作系统中注册回调函数,类似 epoll ) 6 | 6. epoll 怎么理解呢?epoll 如何实现?用到哪些数据结构? 7 | 7. 那不依赖于系统,在代码层面如何实现? 8 | 8. (我说在低计时准确度的情况下的实现方法)那如何要求高精度计时呢? 9 | 9. 你对 Spring 的 AOP 如何看待? 10 | 10. (我说2种实现方式,JDK 动态代理和 CGLIB)为什么 JDK 动态代理需要被代理的类要实现一个接口呢? 11 | 11. 如果让你实现动态代理,你会如何去实现呢? 12 | 12. Spring Bean 循环依赖问题如何解决? 13 | 13. Spring Bean 被 AOP 代理大概发生在什么时候呢? 14 | 14. JVM 的 GC Root 了解吗?有哪些 GC Root 对象? 15 | 15. Java 运行时候,栈空间可能很大,如何快速的枚举出 GC Root 呢? 16 | 16. Redis 的 zset 了解吗?底层使用的什么样的数据结构? 17 | 17. 跳表的优势在哪儿?为什么使用跳表而不使用红黑树? 18 | 18. Redis 并发访问量能有多大? 19 | 19. 设想这样一个场景:我们搞了个选美大赛,人人都能投票,但只能投一票。如何防止别人恶意刷票(数据在内存中放不下,只能存放在数据库中)? 20 | 20. 设想这样一个场景:我们有很多商品,商品的id是1、2、3…之类的,如何防止不法分子或者爬虫大规模访问我们的数据? 21 | 21. 设想这样一个场景:我们有很多商品,商品的id是长无规则字符串,如何防止不法分子或者爬虫大规模访问我们的数据,增大数据库压力? 22 | 22. 大致讲一下布隆过滤器? 23 | 23. 做个题吧:字符串乘法(超长整数) 24 | 24. 你有什么想问的嘛? 25 | 26 | 面了 50 分钟,这个小哥很有意思(非常有意思!),很多地方问的很深,我有几个答得不好。 27 | 28 | 他让我等半小时,然后第二次二面。 -------------------------------------------------------------------------------- /头条/抖音四面(视频三面).md: -------------------------------------------------------------------------------- 1 | 1. 自我介绍 2 | 3 | 2. 你做过哪些 Web 项目,都用了哪些技术? 4 | 5 | 3. 数据库事务的隔离级别? 6 | 7 | 4. 你打算如何优化你项目中的抢课这一业务逻辑? 8 | 9 | 5. 输入一个 URL,到获取到页面信息都有哪些过程? 10 | 11 | 6. Spring 的事务你了解吗?大概讲一下? 12 | 13 | 7. JPA 和 Hibernate 之间的关系? 14 | 15 | 8. Hibernate 底层是如何实现到数据库表的映射的? 16 | 17 | 9. 做一个智力题吧: 18 | 19 | 一个岛,有人带红帽子,有人带白帽子,每人只能看见别人的帽子,看不见自己的帽子。这个岛上有一些神奇的规定:大家每天都要到操场上集体见个面;不能透漏给对方对方带的是什么帽子;如果你发现了自己带的是红帽子,当天晚上就要坐船离开这个岛。有一个外乡人,到了岛上,告诉大家:你们之中至少有一顶红帽子。问这个岛最终的人员去留?每一天会有哪些人离开?最终又会剩下哪些人? 20 | 21 | 10. K个有序链表合并,手撸代码。 22 | 23 | (之后就是聊人生,聊理想) 24 | 25 | 面了60分钟,然后就拿到了offer。 26 | 27 | 中间忘了很多问题。因为比较高兴hhh。 -------------------------------------------------------------------------------- /腾讯/腾讯HR面.md: -------------------------------------------------------------------------------- 1 | 1. 自我介绍下 2 | 2. 你都做过什么项目呢?简单的介绍下 3 | 3. 你平时都有哪些爱好呢?比如游戏之类的? 4 | 4. 你朋友多吗? 5 | 5. 你了解我们部门的情况吗?知道我们具体的业务是什么嘛? 6 | 6. 你爸妈是做什么工作的呢? 7 | 7. 你有别的兄弟姐妹嘛? 8 | 8. 你还打算留在省内工作吗? 9 | 9. 你可以接受在哪些城市工作?深圳可以嘛? 10 | 10. 你还打算读研嘛? 11 | 11. 做工程为什么不读研呢? 12 | 12. 你现在还有在面其他的公司嘛? 13 | 13. 你要是实习到明年六月份,论文怎么办? 14 | 14. 有什么问题要问我的嘛? 15 | 16 | 时长大约17分钟。 17 | -------------------------------------------------------------------------------- /腾讯/腾讯一面.md: -------------------------------------------------------------------------------- 1 | 1. Linux命令你知道哪些?说说他们的作用。 2 | 2. TCP连接3次握手、4次握手了解吗?说说。 3 | 3. TCP的time_wait了解吗?说说 4 | 4. TCP的close_wait了解吗? 5 | 5. close_wait占据了太多的接口应该怎么办? 6 | 6. TCP和UDP的区别? 7 | 7. C++虚函数了解吗,讲一下?虚函数的原理是什么? 8 | 8. C++虚函数表中虚函数的排列顺序是什么样的? 9 | 9. 纯虚函数了解吗?讲一下 10 | 10. 在Linux下编译过代码嘛? 11 | 11. Linux的内核态和用户态讲一下,为什么要有内核态和用户态 12 | 12. 进入内核态的指令都有哪些? 13 | 14 | (怼项目,J2EE大作业) 15 | 16 | 13. 这些表是你自己设计的嘛?对索引了解吗?表用的啥引擎啊?(为啥用这个引擎啊?) 17 | 14. 大数据量的表的设计有啥要注意的? 18 | 15. 假如你这个表有8000万条数据,单张表还能存的下嘛?对于8000万数据的表应该怎么处理?(我说分区表,建立索引等等) 19 | 16. 有测试过一张表可以存储多少数据么?(我说我某门课上存了500W,访问速度会比较慢) 20 | 17. 你500W数据查一次要多久?几十毫秒?几百毫秒?几秒? 21 | 18. 除此之外呢?还有那些措施可以加速访问?(我说使用Redis缓存热点数据) 22 | 19. 使用Redis的情况下如何高并发的写数据? 23 | 20. 项目还有哪些亮点可以说说?(我编了一个,说课程的表中加了一列版本号,抢课时候使用CAS操作来增强并发能力) 24 | 21. 你对C++有兴趣么? 25 | 22. 你们那边的学生是不是都是以Java为主啊? 26 | 23. 有什么问题要问吗? 27 | -------------------------------------------------------------------------------- /腾讯/腾讯二面.md: -------------------------------------------------------------------------------- 1 | 1. 自我介绍 2 | 2. 系统调用和库函数的区别 3 | 3. 32位Linux进程的地址空间有多大 4 | 4. Linux进程虚拟地址空间组成 5 | 5. Linux进程之间如何通讯? 6 | 6. 如果很多个进程去请求一个进程的服务,这些进程应该如何向提供服务方通讯? 7 | 7. 如果多个进程向单进程请求服务过于频繁,该进程没有足够的时间处理,应该怎么办? 8 | 8. 如果多个进程向单进程请求服务过于频繁,该进程没有足够的时间处理,在不额外开启进程和线程的情况下应该怎么办? 9 | 9. 讲一下epoll和select的区别。 10 | 10. 如何在Linux下用共享内存实现你刚刚说的缓存队列? 11 | 11. TCP和UDP的区别 12 | 12. 我们当前视频通话,是TCP还是UDP? 13 | 13. 10E条记录,每条记录是“账号,上线时间,下线时间”(当前天),统计出今天每秒钟的实时在线人数。 14 | 14. 你可以接受的工作城市 15 | 15. 有什么要问我的嘛 16 | 17 | 时长50分钟。 18 | 19 | 不完整,有不少忘记了。 20 | -------------------------------------------------------------------------------- /阿里/阿里HR面.md: -------------------------------------------------------------------------------- 1 | (昨天中午面试的,很多东西都忘记了) 2 | 3 | 1. 自我介绍下,着重介绍你在 Java 后端开发的一些经历和优势。 4 | 2. 你觉得你在这些项目里面遇到过哪些困难的地方呢?这些困难是如何解决的呢? 5 | 3. 你觉得解决困难需要哪些品质? 6 | 4. 说说你觉得你最印象深刻的项目,里面用了哪些技术? 7 | 5. 分布式的 CAP 定理有了解过吗? 8 | 6. Java 之中有哪些锁?你在项目中用过哪些锁? 9 | 7. 淘宝天猫双十一如何抗住这么大的并发量?你有了解过吗?你觉得是怎么做的? 10 | 8. 你未来五年的职业规划是什么样的? 11 | 9. 你有什么问题? 12 | 13 | 面了30分钟,阿里的 HR 真不像是其他公司的 HR。。 14 | 15 | 他们也很懂技术,而且还有一票否决权。。 16 | 17 | 不过最后还是过了。 -------------------------------------------------------------------------------- /阿里/阿里一面.md: -------------------------------------------------------------------------------- 1 | 1. 自我介绍5分钟 2 | 2. 项目经历(某Spring项目) 3 | 1. 你为什么要用Spring?(软工三)迭代2你们是如何开发的? 4 | 2. 你们在什么情况下用到了事务? 5 | 3. 数据库什么情况下建立索引?有哪些索引? 6 | 4. 想学习的技术 7 | 1. redis适用场景 8 | 5. 我有什么问题问他 9 | 10 | (时长24分钟) 11 | -------------------------------------------------------------------------------- /阿里/阿里三面.md: -------------------------------------------------------------------------------- 1 | 1. 自我介绍 2 | 2. 你加入了小百合工作室,都做过哪些项目呀? 3 | 3. 说说米课,里面有哪些技术难点(没有..) 4 | 4. 好,那我们换一个项目,你觉得你做的哪个项目比较有价值?( J2EE 大作业) 5 | 5. 这个项目里面哪些点比较有价值? 6 | 6. 放弃外键,在代码中维护数据的一致性会有哪些问题?数据会不会出现执行出错的时候呀?(使用 Spring 事务) 7 | 7. Spring 事务的话,如果在分布式的情况下,数据库出现问题,还能成功回滚嘛?为什么? 8 | 1. (我瞎BB一堆,没答到点子上)事务失败有两种视角,一个是数据库内部的角度,事务执行失败了。一个是 Spring 的角度,事务执行失败了。如果是 Spring 角度事务执行失败了,那应该怎么样恢复?( GG ) 9 | 2. (GG 之后)事务在什么情况下会失败? 10 | 3. 代码中对数据库操作在什么情况下会失败? 11 | 8. 一个按钮,用户一小时只能点击3次,应该怎么设计后端? 12 | 9. 你们都学过哪些课程啊? 13 | 10. 内存碎片了解吗?讲一下? 14 | 11. 如何解决内存碎片问题? 15 | 12. Java 虚拟机老生代垃圾回收机制怎么做的? 16 | 13. 新生代呢? 17 | 14. 了解 MyBatis 嘛? 18 | 15. ALU中如何实现加减乘除,还记得么?讲一下。 19 | 16. Java 是引用传递还是按值传递?为什么? 20 | 17. 常见的排序算法有哪些?大概讲一下。 21 | 18. 你 Java 是怎么学的?(我扯到了我读过一些 Spring 源码) 22 | 19. Spring 中 Bean 的生命周期 23 | 20. 你有什么要问的? 24 | 21. 你了解我们部门嘛? 25 | 26 | 这次是个总监面的,21点打来电话直接面试,面了50分钟。 27 | 28 | 感觉自己平时开发的项目实际上是“不可用”的。 29 | 30 | 我看另外一位学长的面经,也是说,阿里三面会对项目问的非常深入,会问一些很深入的、关于项目中可能出现的错误、及其对应处理方法的问题。如果想投阿里,要提前想好。 -------------------------------------------------------------------------------- /阿里/阿里二面.md: -------------------------------------------------------------------------------- 1 | 1. 自我介绍 2 | 2. 你在学校里学过哪些课程啊? 3 | 3. 你们Java怎么学习的?你都掌握Java哪些知识? 4 | 4. Java的内存模型是什么样的呢? 5 | 5. Java字节码模型可以详细讲一下嘛? 6 | 6. Java类加载机制了解吗,可以讲一下嘛?(追问:Tomcat类加载机制?) 7 | 7. List和Set了解吗?他们主要是什么区别? 8 | 8. HashMap了解吗?大体的讲一下? 9 | 9. Spring这边,IOC和AOP可以讲一下嘛? 10 | 10. 设计模式你有了解吗?可以讲一下工厂模式嘛? 11 | 11. 观察者模式了解吗?大致的讲一下 12 | 12. 计算机网络这边,你了解吗?能大致的讲一下计算机网络的模型嘛? 13 | 13. HTTP和HTTPS的区别在哪里?HTTPS的加密流程是什么样的呢? 14 | 14. 常见的排序算法都有哪些呢?说说排序算法? 15 | 15. 你所在的技术社团都有哪些开发活动呢? 16 | 16. 你可以实习到什么时候呢? 17 | 17. 你的微信多少 18 | 18. 有什么问题想要问我的? 19 | 20 | 时长大约40分钟。 21 | -------------------------------------------------------------------------------- /阿里/阿里四面.md: -------------------------------------------------------------------------------- 1 | 1. 简短的自我介绍 2 | 2. 你是哪里人? 3 | 3. 你是几几年的? 4 | 4. 你是初中/高中时候有接触过编程嘛? 5 | 5. 你为什么选择 Java Web 后端开发呢?很多人学了一段时间 Java 之后,就转投了 Angular.js。 6 | 6. 你自己的 Java 学习路线是什么样的呢? 7 | 7. 你除了自己看书,看 API 文档、框架官方文档之外,你有追踪过一些 Java 大牛的博客,或者一些 Java 开源库嘛?(我说我一般不去看大牛的博客,更喜欢和自己的朋友交流一些技术) 8 | 8. 你有写过博客,记录自己的学习心得嘛? 9 | 9. (上一个问题我扯到了动态代理)你自己有写过动态代理的 demo 嘛? 10 | 10. 你的那个网络模块(软工一中自己实现的前后端通讯模块)怎么实现的?使用了什么样的协议? 11 | 11. 你(在那个网络模块中)使用什么方式来序列化对象?Java 内置的序列化机制?(我说用的 Gson ,之前用 Java 内置的序列化会出现字节偏移的情况。) 12 | 12. 你对分布式系统中的 CAP 有什么理解?(我说我原计划是期末考试之后去学分布式框架的,然后吐槽了我院三学期制度) 13 | 13. 你们三学期制度是怎么样的? 14 | 14. 你现在除了阿里之外,头条腾讯也在面试对嘛?打算去哪儿? 15 | 16 | 全长17分钟。晚上10点半打来电话,有点刺激。 --------------------------------------------------------------------------------