哈啰Java 24届春招(已oc)
换了个更核一点的部门
=================
timeline
一面 3.N
二面 3.(N+2)
换部门捞,面完当天约面
哈啰-后端-春招一面
时长 1h+
- 深挖 项目+实习产出、技术方案、技术设计等
- 说一下你Apache开源做了什么?(面试官说 昨天我看了你的PR,做的可以。得到表扬,开心嘿)
- 静态路由和动态路由应该使用什么数据结构存储?
- 线程池参数含义,执行流程,调优过程?
- 常用的线程池有什么?
- 线程池开始创建的时候,线程数是等于核心线程数的吗?
- Java原生线程池直接使用会有什么问题?
- ArrayList底层实现?
- ArrayList如何变成并发安全的?说下你的设计
- Java如何实现线程安全的?哪些数据结构是线程安全的?
- 看过JUC的源码吗?谈一下你了解的地方
- 乐观锁和悲观锁底层如何实现的?
- 公平锁和非公平锁的底层如何实现
- Java如何判断一个对象需要回收的?
- 你做的操作系统内核是如何实现垃圾回收的?
- Kafka整体架构?Kafka底层有多个Partition,如何解决消息消费的顺序性?多节点消费者情况下,如何解决重复消费呢?
- Kafka如何保证可靠传输的?(这里我从生产者、MQ、消费者 三个角度考虑)
- Redis源码看过吗?底层数据结构实现是怎么样的?
- Redis分布式锁如何实现?实习中是如何实现的?
- Redis如何实现延时队列?
- MySQL索引实现原理?
- MySQL查询一条数据,是如何查询到数据的?
- MySQL索引失效场景
- MySQL突然的"抖动"存在的原因可能有?
- MySQL能保证数据不丢失吗?为什么?
- MySQL的自增ID会用完吗?如果不会,为什么不会?会的话,会出现什么问题?
- 现在还在学校吗?
- 手撕算法题:删除倒数第K个节点
- 反问:
- 什么时候出结果?十分钟,最慢明天就会约面了
- 业务+技术栈?
春秋招以来最好的面试体验,首先面试官真的帅,其次面完就说通过了,并且还提醒需要加强的方面,要我好好准备二面。表扬哈啰👍!
哈啰-后端-春招二面
时长 1h++
- 现在是在学校?现在还有课吗?什么时候毕业?
- 面试了几家了?有拿到offer吗?(当初回答太老实了,这里应该最好吹一下)
- 说说你觉得收获最大的项目?
- MapReduce的分治思想是怎么样的?
- Raft算法的整体流程?
- Raft算法和Paxos算法的区别?
- 哪些开源框架使用到了Raft算法?
- 主从选举具体的逻辑过程是什么?
- 如何保证分布式日志的一致性的?
- 日志的快照是如何实现的?
- 当初做这个项目的初衷是什么?
- 说一下你Apache开源项目的整体架构以及如何接触的?当初为什么想去接触?
- 平常爱好是?
- 如何存储Steam、微信等软件的好友关系?
- 设计一个网页爬虫的功能,说一下你觉得会遇见的某一个问题,并且你觉得如何去解决它?方式还能再优化吗?
- 聊天系统如何实现的?整体架构是怎么样的?
- 对于Netty而言,一个TCP连接请求是如何建立起来并且完成数据交互的?
- A、B用户聊天的内容 是通过Netty的channel来交互的,底层采用TCP,那么如果发送的内容大小在2000字节左右,可能会发生什么问题?对于这种问题你该如何去解决?
- Netty是如何做到 收到的数据是有序的?
- 一个线程去向channel(可以理解成一个socket)读取数据肯定是需要一个缓存的,那么这个缓存应该放在哪里?应该如何实现?
- 由于一个请求内容比较大,被TCP分成了若干个数据包到达,所有数据包不是同时到达的,间隔时间大概几毫秒到几十毫秒,数据包到达后存储到缓存区,读取数据的线程是由线程池提供的,此时发生了gc后,可能会出现线程A读取了缓存区的一段数据还没读完,就被线程B读取了后一段数据,导致读取不完整,这种情况应该如何解决?
- 如何实现用户一对一聊天这个功能?你说需要用到Channel+ConcurrentHashMap来实现,那么如果连接很多呢?几千万个用户聊天 几亿个呢? 你怎么维护这个连接?(其中涉及到路由链路的实现难点,有没有大佬来解惑一下)
- 设计一个登陆系统?如何判断用户是否在线?判断用户是否在线的代码实现 应该放在哪个地方进行判断?
- 如果打开需要十个登录的页面,选择其中一个页面登录成功后,其他怎么可以响应到登录状态,无需再次登录?
- Spring的事务原理是怎么实现的?
- 给你设计一个针对于数据库的事务注解 @transactional, 你该是如何实现?我们平常都会使用数据库连接池,那你怎么保证DAO层都是使用同一个连接呢?
- cookie和session和token的区别?
- ThreadLocalMap的set的执行流程是怎么样呢?(这里需要注意,set中有个过期key的清除的过程)
- 假设Mysql建造了个联合索引 A,B,C,那么select ... where a = 1 and b > 2 and c = 3, 这个具体会用到哪些索引?(最左匹配原则)
- 算法题:直接给了斐波那契数列公式,没有样例,代码写出来即可 (这是面试以来,碰到过最简单的算法题了)
- 反问:
- 什么时候出结果?一到两个工作日
- 部门+业务+技术栈?(这里面试官给我吹了个牛逼,我顺势吹了波彩虹屁 哈哈)
- base地?
呜呜呜,别再反复鞭尸了😭,给个offer
许愿oc,许愿offer,许愿HR快来!!!