校招 TEG / 后端-Java / 一面+二面+三面
[面试日期] 2025-03-05 [面试时长] 未知
[学校背景] 未知 | 未知 [学历背景] 未知
[发布人] 面试之星官方收录
### TEG一面
1. JVM内存结构及其作用
2. OOM在哪出现,怎么解决
3. 怎么判断要不要GC,哪些对象要被GC
4. 哪些对象可以作为GCroots
5. redis性能为什么这么高
6. redis持久化
7. 持久化怎么保证数据不丢失
8. redis集群
9. SpringBoot的结构
10. 项目
11. 延迟队列怎么实现,自己写一个怎么实现
12. 手撕:最长递增子序列
### TEG二面
1. 介绍项目
2. 你对微服务架构的理解是什么
3. 既然微服务是对一个单体项目的拆分,那直接把每一个接口拆成一个服务是不是更好
4. 说到远程调用比本地代码调用更消耗性能,那么把一组微服务部署在一起通过本地的远程调用,不涉及到不同实例上远程调用的网络开销,这样能不能解决这个问题
5. 一台服务器上不同的两个进程之间的网络调用,按照网络的七层结构来说,这个请求会不会走到网卡,然后通过收发包回到那个进程
6. 一个进程给另一个进程发请求,但是其实并不知道另一个进程是部署在本地还是在远端。那操作系统怎么知道这个请求什么时候走网卡发送,什么时候不走网卡
7. 如果redis性能不是问题,抗几十万几百万的并发都行,那么redis还有没有什么其他问题(提示热key问题)
8. redis里存什么,数据库里存什么。如果redis里和数据库中存的是一样的,那么是不是就不需要数据库都行
9. 如果全部在redis中进行操作,那么数据不一致的时候redis挂了,那么不就出问题了吗
10. 进程、线程、协程
11. 进程的内存结构大概什么样的、低地址高地址是怎么分布的。
12. 进程通信的方式
13. 各种方式能适用于哪种场景
14. 假如说开了一块共享内存大概是3个g,有两个进程都把它挂上去了这个共享内存占不占用本机进程的内存空间(就是说假如本身有4g,那么挂上这块共享内存之后是不是本身进程就相当于到了7g,提示共享内存底层的实现机制)
15. 如果不使用框架,自己来实现一个服务器来接受请求,要做哪些事才行(想问sokect编程里的服务器端要能收客户端的请求要做哪些事)
### TEG三面
1. 高并发场景中用到了事务吗
2. 常见的事务有不同的模式组合,用于异构的分布式系统的数据一致性问题,有哪几种常见的模型(分布式事务的两阶段和三阶段)
3. rabbitmq中怎么处理消息堆积问题
4. redis中的热key和大key问题
5. 如果将热key拆分到不同redis实例中,那不同实例之间的数据同步怎么解决(怎么保证数据在多个实例中的一致性)
6. 如果只有1%的key是热key,其他的不是热key。热key的请求量是非热key的几十倍。那么用主从的方式怎么去平衡成本
7. mysql是通过什么方式去解决主从同步的
8. binlog日志像事务类的操作有回滚之类的各种情况,那么怎么解决同步的从节点也能够在一段时间内保持最终的一致性(事务的主从同步是怎么做的)
9. 假设数据库的主节点出了问题,那么怎么把流量迁移到从节点
回答选举新的主节点,但是面试官说在做数据同步的时候,主节点挂了会导致数据丢失问题
10. 自己设计一个哈希表的类要怎么构建
11. 假设内存大小固定为1M,那么要怎么做。怎么在内存有限的情况下保证扩展性和安全性
12. 构造一个递归的使用场景,递归怎么转换为迭代
13. 将一个Java的源代码,编译成一个可执行的文件,整个编译过程是怎么做的
14. 接口和类的分别在哪些场景下使用
15. 用类的方式去实现一个单例,要怎么做
16. 观察者模式的应用场景
AI 推荐面试题
No Data
