一个半小时 八股很少,感觉面试官很喜欢问优化问题,看起来比较严肃,但我不会的问题他都会给我讲一下答案/思路,总体而言感觉学到很多 介绍项目: 根据项目中的点发散思考+优化思路 1.布隆过滤器:怎么优化会没有删除问题,我说了两种思路 2.rpc的通信过程:如果用tcp这种流式通信协议,你觉得在反序列化过程中应该怎么解析(怎么组装+解析类名方法名) 3.介绍了一下哈希一致性算法 Mysql部分: 你知
项目(限流怎么做的?限流策略?不限流会怎么样?实际中怎么确定的频率门槛?) 八股: 1. Java中类加载过程 2. HashMap和HashSet的区别 3. 有没有遇到过死锁?怎么解决的? 4. java中的锁,乐观:CAS,悲观:synchronized, Reentrantlock 5. 谈谈常见的设计模式? 6. 代理模式有哪两种?动态代理有哪两种? 7. MySQL隔离级别?RR隔离级
后续更新- 已进人才池-寄! 到家事业群-80min-base北京 1. 双方自我介绍 2. 项目: a. RateLimiter类怎么实现的 b. 说说限流策略:令牌桶,漏桶,窗口计数 c. RateLimiter类底层代码看了吗?(没看) d. Spring Task中的@scheduled注解底层怎么实现的?(答了线程数为1的ScheduledThreadpoolExecutor ) e.
进程和线程区别,进程间如何通信? 线程切换成本高原因,线程上下文包含哪些? tcp和udp区别,已经如何选择? 数据库事务,索引理解? mysql 数据库事务回滚如何实现? redis 数据结构、集群数据分配、过期删除? 线程安全、不安全如何理解? java线程池核心参数设置,任务执行流程? 乐观锁、悲观锁怎么理解,如何选择? java常用数据结构? spring aop 理解? 了解哪些设计模式
一面 11.12 项目 AOP原理 让你设计一个上报系统会怎么设计 如果上报接口的QPS特别大该怎么解决 集合的接口 LinkedHashMap LinkedList于ArrayList区别 线程池的参数以及各自的作用 ThreadLocal是什么, 怎么使用的, 主线程的ThreadLocal如何向子线程的ThreadLocal传递数据 Redis数据结构 字符串原子自增的API, 分布式锁的A
1.CAP理论深挖(为何不能同时满足三者,某种场景到底是AP还是CP还是同时满足CAP) 2.CAP分布式系统中如何保证C或者A或者P 3.ClickHouse与MySQL的区别,对比MySQL有什么优点,ClickHouse索引,为何读取比MySQL块,索引底层实现 4.MySQL组合索引场景,MySQL业务中如何调优,索引底层实现,对比B-Tree为何比Hash优秀等基础理论 5.算法题
一面: 1. 做测试题 2. 面试正式开始 自我介绍 提问问题: 大学平时的活动内容是什么? 项目独立完成的比例如何? 遇到项目问题时的解决方法? Django 和 Flask 的区别? 之前从事 Java 实习,为什么希望转向 Python? 使用过 GitHub 吗? 过去获得的奖项详情 二面(技术面): 1. 自我介绍提问问题: 参加的竞赛相关(比赛内容、团队规模、负责工作、参赛方式、准备时
1.项目涉及到哪些表?以及表里的字段怎么存放?(拷打项目) 2.Java类的生命周期 3.如何保证多线程安全 4.ReentrantLock实现原理 加锁过程(底层源码) 5.Synchronized加锁过程(底层原理) 6.Reentrantlock默认是公平还是非公平? 7.Synchronized和ReentrantLock区别? 8.公平锁和非公平锁的区别? 9.线程池的核心线程数是 2
1.项目中设计哪些表?表之间的数据模型?(表之间的关系) 2.Redis存放哪些数据? 3.项目QPS是多少?如果超过了这个QPS,系统会怎么样? 4.Redis原子化的操作有哪些?多个业务如何保证原子化操作? 5.虚拟机配置内存模型 配置参数值? 6.Java虚拟机参数调优?有无实际调优经验? 7.常见的JVM参数和调优了解哪些? 8.垃圾回收算法默认的垃圾回收器?(JDK版本决定,项目JDK版
60min 感谢你的时间 1. 自我介绍 2. 进程和线程的区别?为什么线程切换消耗资源小?进程和线程是怎么来使用多核CPU的? 3. 虚拟内存 4. 手机下单流程的网络请求过程?为什么是三次握手不能是两次?世界上这么多机器是怎么知道我们的目标服务器在哪里? 是要知道所有人的MAC地址然后去匹配吗?连接断开的过程?没有第四步会怎么样?TCPUDP的区别 5. HashMap的实现?红黑树的好处?
八股 -STL中的数据结构 -vector如何实现? -vector删除一部分数据,如何回收掉? -声明vector<int> a,在内存会分配什么空间? -函数内部声明vector<int> a,内存分配的位置?push元素时,栈指针如何变? (以上均考察vector的模板类实现) -map? -unordered_map 查找过程? -unordered_map链表存储时,每个节点存放内容?
1. 为什么选这专业 2. 什么是监督学习什么是无监督 3. 损失函数 4. ArrayList LinkedList 区别,插入复杂度,删除复杂度 5. 讲下HashMap 6. 讲下ConcurrentHashMap 7. 讲下阻塞队列 8. 讲下线程安全的List 9. 讲下JVM内存区域 10. @Autowired @Resource 11. 类加载器过程 12. 如何避免全表扫描 13
二面就不同了,二面的面试官不是做golang的,于是全场拷打八股,其实基本也都答出来了,算法也写出来了,不过还是挂了,可能是横向比较比不过别人 1. 为什么tcp握手需要三次而挥手需要4次 2. 内核态用户态 3. 虚拟内存相关 4. 中断流程 5. 进程间通信 6. 系统调用原理 7. GC 8. 内存逃逸 9. 设计模式..比如装饰器模式 10. 如何防止缓存穿透 11. 如何实现负载均衡 1
9.20 一面 1.自我介绍 2.介绍项目 3.实习项目15min 4.redis 的持久化极致 5.redis的内存淘汰机制 6.lru和lfu的区别,tiny-lfu,布隆过滤器 7.基于lru和lfu以及布隆过滤器设计一个缓存热key探测仪 8.mysql redo undo bin日志 9.undo 日志版本链 10.mysql changebuffer 唯一索引和联合所有哪一个插入效率更
#软件开发笔面经# 一面 8.30 (50min) 开局一道题 lc33。老哥看我写的代码看了几分钟,丁真一下细节 说说Golang中的Channel的数据结构是什么样的? TCP中四次挥手,最后一次为啥要进行等待2MSL? 如果让你设计一个分布式锁你会如何设计? 消息队列的使用场景是什么? Kafka如何保证高可用性? 问项目,问题都比较简要,自己在问题上拓展了一下 二面9.6 (40min)