大厂面经
大厂面经(Java方向)
字节-一面-7.21
项目
- 项目具体细节问题(此处省略)
- 你说重构后运行速度提升了 是为什么提升了?
- 多级缓存怎么设计的?
- 项目用到了MongoDB存储,mongoDB的原理实现了解的多吗?
- (论坛项目)前缀树过滤敏感词怎么实现的?
- 有对前缀树持久化吗
算法题
- 207 课程表
其他
- 我看你研究生做CV的 为什么后面想着转到做工程了呢?
总结
- 算法题没有思路了 一定要冷静 和面试官交流讨论 给出思路 也可能过
- 这次如果不积极讨论 中途直接说写不出来了 肯定就挂了
字节-二面-7.27
研究方向及论文
- 介绍一下你的研究方向吧
- 那说一下你的这篇论文 相比于其他人的方法 创新点在哪里
- 怎么做的 为什么你这么做 效果更好?
- 现在准确率可以达到多少?
项目
- 你工程方面,做过什么项目,熟悉哪些技术?
- 你对项目做了什么优化?怎么优化的?
- 项目具体细节问题(此处省略)
算法题
- 有n个排好序的数组,找出前m个小的数
反问
- 面试官表达了对我没有实习经历的嫌弃orz, 说还是要去公司实习才能知道业界具体是怎么做的
百度-一面-8.3
(全程就是聊项目+项目延展技术点 很奇怪没有算法题)
- 实验室的项目是一个什么项目呢?(自我介绍只说了java项目)
Java基础:
- 聊一下你对OOP的理解 比如多态 封装等等
- 刚才你说到了重载和重写 有没有了解他们之间的差别呢?
- 那重写的话 假如父类的声明时throw一个IOexception 那我的子类去重写的时候可以去throw一个exception吗?
- throw的范围有什么什么差异或者要求呢?
- Java的一些集合类你都有用过吧?举一两个你比较熟悉的 然后给我讲一下它的使用场景、与其他类型的差异、实现原理的东西
- ConcurrentHashMap你在项目中有使用到吗
项目+技术使用:
- 你说项目中用了多线程,当时的一个场景是什么样子 为什么要用多线程?然后怎么去用的呢?有没有遇到什么问题?
- 100万数据量并不是很大 你说是用csv读的是吧 读过来之后是放在内存里面吗?
- 你使用多线程的时候用到了池子是吧?当时对线程池的设置有关注过吗?
- 在项目里面 还遇到过什么问题 通过技术手段去解决了呢?
- 你项目做完 还在优化它 有些什么优化思路呢?
- 如果改进成分布式 比如现在100万 后面数据集用上1个亿数据量,你觉得你们现在的架构体系,瓶颈会在哪里?
- 现在你们使用mongDB 做了什么索引?
- 在另一个项目(论坛)有没有遇到什么技术问题?
- 介绍一下前缀树过滤敏感词怎么做的?
- 有跳过字符—就是一个demo性质的东西是吧?
- 有没有去了解过 业内是怎么去做这种敏感词过滤的?
- 介绍一下前缀树过滤敏感词怎么做的?
项目+技术原理:
- 有用到数据库吗 除了mongoDB–mysql
- 现在你假如要去建表 建表有哪些注意事项 你会去怎么考虑,比如表的字段啊 结构啊 索引啊 表之间的关系啊
- 会考虑使用外键之类的东西吗?
- 不建议用外键 是为什么不建议呢?
- 有没有用过explain这个命令呢?
- 一般你会关注什么信息呢?
- 我一张表 很多字段都可以加索引 都加上了 你觉得这是一种好的行为还是不好的行为?
- redis我看你也用了 单纯的作为一个k-v存储是吗? 还是有一些其他的用处?
- redis很快 为什么快呢?
- 你说的单线程 是整个redis都是单线程呢 还是说什么范围是单线程呢?
- redis很快 为什么快呢?
b. 哨兵了解吗
c. 有没有用它去做分布式锁这种东西?
d. 假如你项目要做规模化分布式化 redis在里面可以扮演什么角色??
- 这两个项目都是spring的吧 spring的常用概念比如IOC AOP 说一下你的理解
- 你提到IOC是作为一个帮我们管理bean 假如有循环依赖的情况 你知道spring是怎么处理的吗?
- AOP的东西 你在项目中有使用到吗?
- AOP有什么限制吗 比如说哪些可以用 哪些不可以用? 在你的项目中 比如有一些方法级的注解 应该有一些限制吧?
- 除了spring之外 类似的框架有了解吗
- springboot解决问题的场景是啥?或者说为什么有它呢?
- springboot有没有什么不足 在你使用过程中?或者这种它帮你做了starter做了约定配置 在你看来有没有可能哪里会有些限制?
- 你的这些服务都是物理机部署吗 还是用到了容器之类的?
- 云部署但还是物理机
- 容器相关的有了解吗 Docker啊 k8s啊
- 第一个项目是协同开发 应该有用到类似git代码版本管理是吧?
- git init了一下 它应该是在你的代码库目录下生成了一个.git文件夹 有没有去看过它里面的内容呢
- git rebase有用过么 什么场景下使用的??
- 部署的时候应该是用的linux的机器是吧? linux的常用的命令了解吗 咱不说太easy的比如cd mkdir啊这些 有没有用过一些比如诊断啊 查看机器状态啊 排查问题之类的命令?
- top命令 你还记得它会打印出什么东西吗 它应该是一个经典的三段式的东西
- JVM之类的命令 有用吗?? 比如说jmap啊 jstat之类的
- 看字节码文件的时候 是参照这一些工具去看呢 还是说硬看呢?
- 还记得里面都有什么吗 它的结构之类的
- jstat你可能没用过 但是你知道它是什么吗?
- JVM相关的东西 都看过什么呢?
- 你的项目是用的JDK几? 8还是11还是17
- 有了解过GC的时候其实会产生Stop the world吗?
- 这两个项目里面 还有遇到过一些非技术性的难题吗
反问
- 小部门具体是做什么的?
- 给点评价 后面有哪些地方需要注意或者加强?
- 这个其实不太能说啊 说一点吧:自己写上的东西都要会 没有把握的可以不用写 简历上的确很丰富—-就是没有很深入的就没必要写?对
总结
- 面试官提问的时候 是有意识要考察到这几个模块:java基础 、 项目+技术使用、 项目+技术原理、团队合作
用友-一面-8.19
- 自我介绍
项目:
- 具体介绍一下你的这个项目
- 项目使用的技术栈有哪些?
- 再介绍一下你这个论坛项目?
- 说一下点赞是怎么实现的?
数据库
- 用redis有做持久化吗
- 为什么选用AOF?
- AOF的优点?
- redis为什么使用单线程
- 详细说一下IO多路复用
- 缓存穿透和缓存雪崩
- 对应的解决策略
- 数据库三范式
- Mysql的存储引擎了解吗 讲一下
框架
- 项目用的什么框架?
- 为什么用springboot
- springboot的核心注解@SpringBootApplication讲一下?包含了哪些注解?
- springboot的优点?
- spring bean的生命周期?
- spring MVC了解吗 讲一下核心原理
- Mybatis了解吗
- Mybatis是怎样将sql执行结果映射成java对象的?
- Mybatis如何实现批量操作?
- springcloud了解吗
java基础
Object类有哪些方法?
Java集合了解吗 讲一下
说一下hashmap的数据结构
- 除了红黑树 hashmap还有哪些设计 来保障查找效率?
- (n-1)& hash 其中n指的是什么?
- 为什么hashmap长度设置为2的幂次方
return 3 * 0.1 == 0.3 返回的是true还是false
学习这些后端技术或者做项目的时候 又遇到什么难点 怎么解决的?
用友-二面-8.25
- 讲一下项目的技术栈和遇到的问题
- 项目细节
- 用到了线程池 讲一下
- 线程什么时候会消亡?
- 如果一开始设置16 最后池子里面只有9个线程在跑了 那怎么办 你是怎么监控线程池状态的?
- 什么时候会关闭线程?
- 用了CountDownLatch 设置了线程消亡时间吗
- 并发这块 还了解哪些?
- 哪里用到了Threadlocal?
- 讲一下ThreadLocal的内存泄漏问题?
- 除了弱引用 还有什么是为了避免内存泄漏?
- 如果写一个父子线程 要怎么把父线程ThreadLocal的值传递给子线程呢?
- 多级缓存 是怎么设计的?
- 设置过期时间吗? 过期时间的数据支撑?
- 那同时有很多用户来进行搜索 就会造成缓存的大量堆积啊
- 那如果这个缓存只是针对一个用户的体验优化 又会造成缓存堆积 没有必要 (设计的不合理)
- 了解哪些中间件?
- kafka了解什么?
- 如何保证消息的有序性?
- 怎么保证全局有序
- kafka的多副本机制?
- 为什么用kafka?
- 为什么不用RaabitMQ等商用的消息队列呢?
- 只了解kafka 对其他MQ不了解是吗?
- Redis了解些什么?
- 讲一下RedLock
用友-HR面-9.8
- 确认基本信息:学校、学历、专业、是否统招、意向工作地
- 为什么想来北京?
- 有向朋友了解一些进入社会后,工作的情况吗? 有什么看法?
- 职业规划?(给我说了一堆职业规划问题–算法OR开发, 读博OR工作, 赛道选择)
- 为什么不做算法 为什么不读博?
- 你的简历最大的问题就是没有实习经历
- 如何看待ToB和ToC?
- 加入一家公司 最看重什么?
- 如何看待字节这家公司?
- 对用友有什么了解?
- 字节和用友同时给你发offer 你怎么选?
- 你做java后端 最大的优势是什么?—硬性条件+软实力
- 现在手上有什么意向书?—没有:这不正常(变脸了都)
- 意向薪资多少?
- 反问
科大讯飞-一面-8.30
30min
- 对科大讯飞有哪些了解?
- 挑一个你最熟悉的项目 介绍一下吧 主要讲一下遇到什么难点 怎么解决的
- 这个项目有落地使用吗
- 这个项目是研究型的项目 还是你们几个人对这个感兴趣 然后一起做的项目?
- 用的什么数据库?
- 当时选型的时候为什么不使用ES来存储呢 而选择了Mysql
- kafka在项目里面做了什么?
- redis在项目里面做了什么
- redis使用的时候 需要特别关注什么问题?
- 缓存堆积怎么解决?
- 有用redis持久化吗 用的什么?
- 为什么用RDB 有什么优点?
- TCP和UDP在哪一层 有什么特点和各自的适用场景
- HTTP在哪一层
- HTTP最新的版本是多少?
- HTTP3的传输层是用的是什么协议?
- 为什么改成了UDP来实现?
● 讲一下JVM的复制算法? 适用于什么场景?
Linux有用过吗
- 常用的linux命令?
- 查看网络状态 用什么命令?
- 删除进程用什么命令?
讲一下你最近在学习什么技术点 有遇到什么问题 怎么解决的?
二面时间我推了两次 不约了
阿里-一面-9.6
(55min 电话面试 结尾做题的时候发算法题链接到邮箱 然后进去做题)
算法项目:
- 讲一下这个项目
- 有在实际使用吗 怎么部署的?
- (项目细节)
- 所以你们这个还是一个实验性的项目是吧 如果涉及到实际部署 就需要搭建网络系统 存储系统 其实是有很多东西需要去做的
- 我看你主要还是做计算机视觉的 但是又投的是java开发?后面还是想做开发?
- 那问一下java基础的东西
Java基础:
- java涉及线程安全问题 可能会使用到并发锁 讲一下你知道的并发锁 你知道的全说
- 除了synchronized和RentranLock 还了解什么?
- HashMap的底层实现?
- 为什么ConcurrenHashMap是怎么实现线程安全的?
- JVM了解吗
- 讲一下JVM的内存管理?
- 说一下你知道的排序算法
- 你说的这些都有一个共同点 内部排序 大数据量下排序怎么做呢?
- 归并是一个思路 但是其实实际大数据场景中 是很少使用你说的这些排序方法的
算法题:
给一个数组nums 和一个数num 数组长度为N 求数组中是否存在多个任意元素的和为num
我看你主要还是做计算机视觉的 java的实践可能比较少
你平时是怎么学习java相关的技术的?
有看过什么源码吗
阿里-二面-9.9
- 这个项目 你是有一些实际的使用方 还是说是一个练习的项目
- ok 先问一些比较基础的 模式化的问题 看一下你的基本功 后面再根据你具体的情况还有项目经历 去问一些开放性的问题 项目以及其中设计的技术点
基础
- 数据库的事务隔离级别有哪几种?
- mysql是怎么实现可重复读的?
- 详细说一下MVCC的细节?
- 死锁形成的条件
- 要解除死锁 有哪些常见的操作?
- java里面 如果我们要自己去构建一个线程池的话 有哪些参数 各自是什么含义?
- 说一下spring AOP的实现原理
- JDK动态代理 和 CGLib动态代理 他们的区别
- 你使用mabatis里面 注册mapper你是用的什么方式?
- 我们平常使用的话 就是加上注解 加载成为一个bean 就可以被其他bean去引用了嘛 那你可以说一下 注解生效的整个过程吗?为什么加了这个mapper以后 你的mapper就可以称为一个bean?描述一下这个整个过程
- 如果mybati这个雀氏不太了解 那我换一个问题问 如果我们自己实现一个annotation 然后这个annotation加在一个interface上 然后它就会成为一个bean 那这个过程是什么样的?
360-一面-9.6
(60min)
算法题:
- 27 移除元素
- 143 重排链表
项目
- 介绍一下你最熟悉的项目吧
- 提供服务用的什么网络协议?
- 使用的什么数据库存储的?
- 为什么不存在redis 存在redis会有什么问题?
- (项目细节)
- 有用到多线程并发编程吗
- 讲一下线程池的使用—–挖了很久
- (项目细节)
基础
- 讲一下网络的七层模型
- TCP IP在哪一层?
- TCP四次挥手将一下
- TIME_WAIT状态是客户端还是服务端?
- 为什么有TIME_WAIT状态
- 利用TIME_WAIT 会存在什么安全攻击问题?
携程-一面-9.7
(45min)
(无自我介绍)
- 讲一下要用计算机算2的15次方 怎么算?
- 向一个不懂计算机的人 介绍两种排序算法 并介绍一下他们的差别
- 讲一下hashmap
- 讲一下mysql innodb的索引结构?
- 为什么B+树叶子节点不存放数据呢?
- 我1000万的数据 B+树的层高大概多少
- 讲一下内存泄漏问题
- 发生了内存泄漏 怎么去排查
- 讲一下redis是如何保证高可用的?
- 集群模式是一方面 还有呢?
- 说一下缓存穿透的问题 和解决方案?
- redis的持久化机制?
- 逻辑推理题:过桥问题:
- 一个一次只可以通过2个人的桥 一个手电筒 必须有手电筒才能通过全程 手电筒拿到对岸以后 需要另一个人送过来
- 每个人过桥速度不一样 分别耗时是 1 2 5 10 问怎么安排 能让所有人过桥的时间最短
- 我听成了1 2 3 4 面试官说就是让耗时最长的两个任务一起走 5 10 后端的技术理念 让耗时最长的任务一起执行
- 如果一个之前项目的代码 有很多if-else switch-case问题 然后让你去重构 你会怎么处理
- 觉得一个优秀程序员应该有的特质?
- 设计模式了解吗 讲一下状态机 模式?
- 讲一下你以前做项目的时候 遇到过的挑战 怎么解决的?
反问:
- 部门情况
- 分布式 我对于校招生的要求 只会是你理解这个东西就行了 不会去问你怎么用 遇到什么场景怎么处理之类的问题
贝壳-一面-9.19
45min
- (项目细节)
- redis主要用来做缓存?
- zset的底层结构?
- redis可以支持比较高的QPS 这里的原理有了解吗
- IO多路复用模型 讲一讲你的理解
- DB这块mysql用过么 MVCC的原理了解吗?
- 视图 在mysql里面 视图是一个什么东西
- 选用什么数据去建立索引 有没有自己的考虑
- 什么数据不适合建立索引?
- 为什么大String不适合
- 进程间的通信方式
- 在实际项目里面有用过吗
- 线程池有用过吗 当时怎么设置的?
算法题
- 剑指offer 57-|| 和为s的连续正数序列
- 295 数据流的中位数
贝壳-二面-9.19
55min
基础
- 多级缓存是怎么保证数据一致性的?
- 先修改数据库再删除缓存 数据还是会不一致 解决方式?
- 比方说基于消息队列来解决 消息的可靠性如何保证?
- lock和sychronized机制和区别?
- 公平锁和非公平锁的实现
- 公平锁 获得一个标志 没获得就去排队 等的过程中可能有自旋
- 非公平的话 就没有队列 可能直接直接跑过去取用
- java一个类初始化的流程
- 双亲委派机制?
- 使用数据库 要获得一个连接的时候 可能会用class.forname()来做啊 给一个路径然后加载 这种和双亲委派加载有什么不一样的吗
- 应该先说 byname bytype??
- Tomcat是怎么去做类加载的保证的 好像是有一个线程上下文的类加载器是吧?
- 使用数据库 要获得一个连接的时候 可能会用class.forname()来做啊 给一个路径然后加载 这种和双亲委派加载有什么不一样的吗
- 用kafka性能好 为什么好
- 用户态和核心态转换的时候 有一个零拷贝机制 讲一下?
- JVM内存回收机制的对象担保的东西吗?
- 如果担保失败的话 他会有一个处理机制
框架
- spring aop原理
- 比如AOP机制 默认可能会使用动态代理 你有基于动态代理这种模式 有做一些应用吗
- 你刚刚提到拦截器 spring事务处理这块底层是咋做的?
- spring的事务底层也是基于threadlocal 绑定一个线程变量 然后基于transacation 拦截器来做的
- 有两种方式 一个是用注解 一种是编程式事务手动去做
- 你使用它的事务处理 有没有遇到过什么问题?
- 可以列举一下失效的场景
- 在异步的场景下 有一个异步的注解@Async 也会有注解的事务失效
- 所以更偏向于使用编程式事务 因为是可控的 使用注解的话就需要使用者对它内部的处理机制比较清楚 什么时候会失效 失效之后可能会有回滚 回滚是怎么做的
- 平时做项目 数据的之久 orm框架用的啥
- mybatis里面也有一块 用到了代理的机制 mapper proxy其实是一个动态代理的应用
- springboot 的一个运行机制
- 这里扯了核心注解生效 + run方法运行
- 自定义starter有写过吗 原理?
其他
- 你在做团队开发的时候 你承担的角色
- 你觉得这个项目要做成功 你觉得哪些是比较关键的要素?
- 拆分步骤 细化任务 任务安排 节点安排 进度把控和跟进
- 对自己的未来规划?
- 你本科不是科班 当时是怎么考虑要跨考的?
- 你怎么看待和科班的差距的 怎么弥补?
- java这一套 有看过框架源码吗
算法题
- 双重校验的单例模式
- 它和其他的单例模式写法相比 有啥好处
- 变量为啥加volatile
贝壳-HR面-9.19
- (大致写一下 没录音 不太记得了)
- 合作性项目的时候 成员之间有什么矛盾吗 怎么解决的
- 你觉得自己做过最成功的的一件事?
- 职业规划?
- 目前投递和面试的情况?
华为-一面-9.20
45min
算法题
- 16 最接近的三数之和
基础
- 对于java中多态的理解
- ArrayList和LinkedList的区别?
- Hashmap的实现?
- java创建线程的方式
- 死锁和怎么解决?
- volatile的理解?
- JVM的内存结构?
- 可能会报OOM的区域?
- 怎么排查和解决OOM?
项目
- 这个论坛项目是一个个人练手的项目是吧?(现在几乎每场面试 面试官都会先问一句这个)
- 另一个项目的实现细节
- 实验室项目介绍
- 有实际落地吗
总结
- 八股 是面了这么多 问的最简单的了 而且抛出一个问题 回答了也不会往下挖
- 代码是共享屏幕在本地ide写的
华为-二面-9.22
- 先简单介绍一下你的项目 然后我们挑两个来讲一讲
- 第一个项目的项目细节
算法题:
- 三数之和
华为-主管面-9.22
- 自我介绍
- 考研还是保研的?
- 哪里的人?
- 想在哪工作?为什么想来深圳?
- 你们实验室项目是做什么的?
- 做这个项目有啥收获?
- 你的毕业设计就是这个相关的内容吗?和这个项目有关系吗
- 你为什么没有参加企业的实习?
- 你有啥爱好?
- 还有其他的吗 体育有啥擅长的吗?什么水平?
- 你在同学中的 个人人设是什么样子的? 别人是怎么看你的?
- 你有什么自定的必须完成的任务吗?完成的怎么样? 短期和长期的都可以
- 你们院怎么样?里面待遇好吗?
- 有获得什么奖项啊?
- 你有什么问题吗?
字节-一面-8.29
70min
项目
- 介绍一下这个项目的背景 以及做这个项目碰到的问题
- 项目细节
操作系统
- 进程和线程的比较?
- 进程间通信的方式有哪些?
- 匿名管道和命名管道的区别?
- 要撤销一个命名管道 使用什么命令?
- 常见的IO模型有。。 你讲一下IO多路复用模型的实现原理?
- 提到了select epoll 说一下他们使用的数据结构的区别 链表 红黑树?
- 那你知道redis里面 实现IO多路复用 使用的是什么数据结构吗?
计网
- OSI模型里面 TCP-UDP协议属于哪一层 讲解一下他们的特点 区别 使用场景
- TCP连接建立与连接断开的过程?
- 如果在传输过程中 服务端异常 网络拥塞导致超时了 客户端会怎么处理?
- 拥塞控制怎么做的?
- 快重传了解吗?
数据库
- 了解哪些关系型数据库?
- 讲一下了解的mysql的存储引擎
- 讲一下myisam和innodb的索引的实现及区别
- 讲一下一条SQL语句的执行流程
- 进入引擎层以后的执行过程?
- 知道怎样查看一条查询语句的执行状态码 用什么命令?
- explain命令执行以后 有哪些比较关注的参数字段
算法题
- 说一下知道哪些排序算法 以及他们的时间复杂度
- 堆排序了解吗?原理?时间复杂度?
- 给一个数组 使用堆排序实现对数组的排序 需要手动实现堆 能实现吗
- 不能 orz
- 那换一个 缓存里面比如Redis会有内存淘汰算法 比较常见的就是LRU 讲一下原理?怎么实现的?
- OK 实现一下LRU
字节-二面-9.5
(1h20min)
- 项目有一个点就是登录 是怎么做的呢
- 验证码
- 你生成的图形验证码 和你发码的过程是用什么联系起来的?
- 你刚提到了cookie和session 它们是怎么联系起来的呢?
- 假设我现在有100个客户 我怎么去找到cookie对应的session呢?
- cookie相当于是你的session_id 那cookie的key呢?或者cookie的value呢?
- 登录的时候 输入的是用户名和密码 用户名和密码的传输过程要怎么保护呢?
- 为什么HTTPS就能够保证安全呢?
- 怎么建立认证?
- 为什么客户端就能信任发过来的证书就是真的呢?
- 服务端是什么时候去CA拿到证书的?
- 存储密码是加了盐以后再存到mysql 是怎么加盐的?
- 登录完成之后 查到登录凭证有效 就是要threadlocal去取user信息 怎么从一个请求映射到一个用户的?
- ThreadLocal的作用域是什么?
- 比如两个先后不同的请求 会不会使用同一个threadlocal呢?
- 这里面试官其实说的就是threadlocalmap里面的信息 会不会被别的请求(线程)拿到
- 比如我现在有两个线程 处理两个请求 但是是同一个用户发起的请求 那你这里存了几份user信息?
- 其实就存了两次 map只对当前线程有效
- 如果我又有第三第四个线程 处理另外一个用户的请求 这个threadlocal又是怎么去存储这个信息的呢?
- 然后线程1在结束之后 又来了第三个用户的请求 那线程1此时的threadlocal里面有存了哪些信息?
- 相同的线程 不同的用户 取到的user是不一样的吗?
- 就需要保证在当次请求结束后 对thralocal进行一个clear操作
- 一个用户当前访问完后 下一个用户来的时候 之前线程的threadloca就不在了吗?
- threalocal的生命周期知道吗
- 对于未登录的请求 它去threalocal去取user 然后得到一个用户身份 有遇到这种情况吗?
- 有了解java的线程池吗—-之前的问题其实就是在同时使用线程池和threadlocal的情况下会出现的场景和问题
- 我能不能在线程池里面用threalocal呢? 那如果线程不消亡 那threalocal的生命周期是怎么样的? 那我的threadlocal是跟着什么走的呢?线程还是任务对象?–线程
- 所以不同请求 复用同一个工作线程 就会出现问题—-但其实通过clear就可以解决了
- 你刚刚提到了CPU密集型和IO密集型 那分别怎么做
- N+1 2N 为什么呢?
- 除了影响corePoolsize吗 还对什么有影响呢?—-想问maxpollsize的设置
- 我把maxiumPoolsize设置成100N 行不行?? 如果是CPU密集型 我maxiumpoolsize怎么设置?
算法
- 300 最长递增序列–变种
- 输出最长递增子序列的长度
- 输出任意一个最长递增子序列
- 输出元素和最大的最长递增子序列
- 上面三种 选一个做 会写2就不用写1 会写3就不用写2
字节-三面-9.14
- 自我介绍
- 问项目(比较宽泛的问题 挖的也不深)
- 15min左右开始写题
算法题
- 48 旋转图像
问了一下知不知道数学原理
快手-一面-9.7
(55min)
先说了一面的流程:自我介绍–基础知识或者项目里面的技术点–一两道题–交流环节
项目
- (项目细节)
算法题
- 获得完全二叉树的最底层的最右边的节点值
- DFS怎么写?? BFS层序遍历可以怎么优化?
- 239 滑动窗口最大值
基础
- JVM内存溢出的情况有哪些?
- 堆 还有呢?
- 那如果有出现内存溢出的情况 应该怎么去排查?
美团-一面-9.8
65min
项目细节
基础
缓存与redis:
- 讲一下缓存雪崩和缓存击穿的场景和解决办法
- 如果访问查询数据 该数据在DB里面不存在 该怎么处理?
- 布隆过滤器是怎么实现防止缓存击穿的??
- 怎么降低它的误判率? 其实是基于hash做的嘛 我一个key hash到一个节点上 如果多个key都hash到同一个节点上 我怎么去降低这种概率呢?
- Redis 你用过哪些数据结构?
- HyperLoglog用来做什么?
- ZSET使用场景是什么?
- Zset底层数据结构是什么样的?
- skiplist和ziplist分别在什么时候使用?
- 跳表有哪些优点呢 适合用来实现zset
- 跳表的查询的时间复杂度是多少?
- redis是怎么去删除过期key的?
- 像redis的这些知识 你是怎么获取的?
- 怎么保证缓存一致性?解决方案?
- redis的集群模式了解吗?
- 有哪几种分布式高可用的方案?或者你觉得应该怎么做才能实现一个高可用redis集群呢?
- master-slave master崩溃后slave的选举过程?
- 你是说通过哨兵来选是吧? 可以再看一下,其实有两种模式吧 一种是哨兵,另一种是redis本身也出了一个redis Cluster
java集合:
- 聊一下java的集合
- 说一下hashmap吧
- hashmap的并发问题主要体现在什么地方?
- hashmap扩容机制你了解吗 是怎么做的?
- 为什么设置为原来的两倍? 不是添加几个节点? 不是3倍?—-这里其实是2的幂次方问题
- cocurrenthashmap是怎么做到线程安全的呢?
java并发:
- 讲一下sychronized吧
- 那说一下它锁膨胀的机制吧
- sychronized是公平锁吧?—–面试官坑我
- 公平锁和非公平锁的区别是什么?
- 非公平锁有什么优势呢?
- ReetrantLock和sychronized的区别?
- 了解线程池吗?讲一下java里面的线程池?
JVM:
- 说一下JVM里面的内存划分吧
- 了解垃圾回收的机制吗? 怎么判断对象可回收?
- 哪些对象可以作为GC-Roots?
- 为什么这些对象可以作为GC-Roots?—-你是说 他们肯定是活着的对吗
- 说一下分代模型
计算机网络:
- HTTP和HTTPS有什么不一样?
- HTTPS是怎么保证安全呢?
- 什么时候用的对称加密 什么时候用的非对称加密?
Mysql:
- Mysql事务的隔离级别有哪几种?他们每种会产生什么问题? 什么是幻读?
- InnoDB默认是什么级别?
- InnoDB在rr级别(可重复度级别)下会出现幻读吗?
- 了解MVCC机制吗?
- 了解InnoDB里面的锁吗 大概都分哪些锁?
- 间隙锁是什么?
- InnoDB的索引 然后数据结构
- 了解索引失效的场景吗? 举几个例子?
操作系统:
- 32位的操作系统 它的虚拟内存的寻址空间是多大??—看你简历上写了懂虚拟内存
算法题:
- 33 搜索旋转排序数组
美团-二面-9.16
60min
- 论坛项目 是一个实验室项目、课程项目还是什么项目?
- 论坛实现一个热帖排行 用redis怎么做?
- redis什么实现机制 导致它的并发量比较高啊?大家用的比较多?
- 介绍一下实验室项目 和你做的方向
- 你自己会看什么书 或者代码之类的吗?
- G1垃圾回收器 和前一代的垃圾回收器有什么区别?
- 垃圾回收会关注哪些目标? 优化是在优化一些什么东西?
- 除了低延时还有别的吗?
- 垃圾收集器并行和串行
- G1里面可以设置参数来影响他的停顿时间吗
- 可预测停顿是怎么做的 ?为啥设置一个了就是可预测的呢?
- 你猜一下?让你做你怎么做?
- 学习之外 有什么兴趣吗?
- 上一轮代码写的怎么样 写的啥 这次出一个难点的题 你看一下
- 你觉得你算法题能力怎么样?
算法题
剑指offer || 40矩阵中的最大矩形
你觉得之前做项目 在实验室 还有生活中 你碰到最难的问题是啥?你是怎么去面对和解决的
搞论文过程中 有遇到什么瓶颈吗?
遇到比较郁闷的情绪的时候 是怎么处理的?
本科读的土木工程 你觉得你学土木这个学科 有什么给你留下的比较深的印象?
有其他公司面试和进展吗?
OPPO-一面-7.27
- 什么时候开始接触Java的?
- 当时为什么选择做这个项目?
- 做这个项目之前有哪些准备?
- 项目中点赞关注怎么实现的?除了这些还有哪些数据结构,什么作用呢?list底层除了双向链表还有什么?压缩列表具体能讲讲嘛?什么情况下底层是zp呢?除了list外redis还有什么可以做消息队列?怎么统计的网站数据?
- redis单线程为什么快?10多路复用阻塞的是什么??
- 你的项目中对redis热点数据的处理?那数据太大怎么处理?
7.为什么用Caffeine效率提升那么多分析过嘛?
- kafka主要的组件讲一下?了解Consumer Group嘛?
- 除了kafka还了解哪些MQ?
- 项目中哪里用到了多线程?线程池讲一下?怎么设置这些参数了解嘛?
- 讲一下Java并发了解什么?volatile和synchronized的区别?
- threadLocal讲一下?还有个追问没答上来忘了。
- linux常用命令?怎么看cpu负载?
- 你学习过程中有什么印象比较深的?
建议:基础很好,了解的很深,看得出来对技术的热爱hh,希望你保持下去 对多线程多学习学习 个人项目和公司里是不一样的 希望后面也可以多实践实践.
蔚来-一面-7.27
数字系统测开 问的都比较浅 点到为止
- 讲一下前缀树处理敏感词?白名单你怎么用的?
- ES怎么用的大概说说?(后面的简历把ES删了hh)
- Jmeter你怎么测试的?数据怎么来的?
- ping www.baidu.com 用了哪些协议?
- 在浏览器上输入 www.baidu.com 地址后会发生什么?
- http和https的区别?
- 如何判断对象是否死亡?
- linux常用命令大概说一下?
- 那你大概说一下如何找到java开头的进程的进程号然后怎么停掉呢?
- 我看你写了解hashmap的原理 ConcurrentHashMap了解吗?有什么区别呢?
- 写个SQL语句吧 user id car id 显示一个人有多少辆车?
- 写个题吧 我就看看你写代码的风格:99乘法表
评价:我觉得你回答的挺好的呀 读过一些源码,说明你还是挺喜欢技术的hh(没问啥测试相关的 主要根据简历来 我简历里写了Jmeter所以问了一下)
百度-一面-8.1
测开一面凉经(50min)
- 常用的Linux指令你用过哪些(说了好多)
- rm -rf中的r什么意思?
- ps -ef中的e什么意思 f什么意思?
- 关于网络的指令你还用过哪些?
- cpu负载怎么看?
- 数据库索引讲一下?
- 建索引的时候有哪些注意事项?
- 什么时候用索引效率低呢?
- 做题:
- 回文字符串
- 讲一下?
- 优化一下?
- 你怎么测试你写的这段代码?
- 692 前k个高频单词
- 讲一下?
- 如果数据量很大呢 怎么处理?
- 你怎么测试你写的这段代码?
评价:我看你是计算机科班的 按理说有的问题我觉得你会回答的更好(你咋这么菜)我看你测试了解的也不多 我们部门主要是做测试的 如果你后续面别的公司还是测开岗的话这里要加强一下哦(886)
总结:其实问的很基础呀 面试官也很和善 但是我回答都是点到为止 应该展开说说 然后就是确实对测试了解的不多886
OPPO-二面-7.29
45min 算综合面
- 项目相关(点到为止,主要看思维)
- 怎么接触到这些技术栈的,比如做这个怎么想到用Redis,这个为啥要Kafka
- 你是怎么学习这些技术栈的?
- 为什么本科选择读计算机?
- 实验室是做算法的,为什么选择来做开发?
- 简单介绍下论文和在实验室的工作(他也不懂 就硬吹)
- 你在实验室和别人对接的时候有矛盾怎么解决?
- 遇到的困难是怎么解决的?
- 你们一般在实验室待到什么时候呀?(能加班吗嘻嘻)
OPPO-hr面-8.7
20min
- 我看你本硕都是计算机相关的专业,为什么读计算机?
- 你学过的课程里喜欢哪一门课?
- 意向工作城市是哪里?
- 有没有遇到过什么困难?怎么解决的?
- 对oppo有什么了解吗?
- 你提到创新,能具体一点吗?
- 你觉得好的工作环境是怎样的?
- 你觉得你在公司能够得到什么?
- 职业规划呢?
反问:新人培训 后续(1-2周 可能更快)
万集-一面-8.10
30min
- Java的装箱拆箱机制了解吗?
- 追问:包装类型都有缓存池吗?
- 追问:Integer的默认值是什么?
- 追问:short的取值范围是多少?怎么来的?
- 追问:十进制的16转换成十六进制是多少?(我说我算一下 他说时间紧没事。。。)
- 讲一下http协议
- 项目里面有没有做后端向前端主动推送数据?(没有)
- 项目里面有没有做动态实时数据的显示?(没有)
- 项目有没有部署?
- 用了Kafka是吧 你写了几个topic (忘了。。。)
- 如何根据时间戳消费数据?(不会 到这里感觉凉凉的)
- JDK1.8新特性?(答了lambda表达式 Stream Date)
- 追问:用过Stream吗?
- HashMap的底层数据结构讲一下?
- 怎么解决粘包的问题?
- 线程池用过吗?讲一下拒绝策略?
- 讲一下归并排序
- 讲一下索引
- 内连接和外连接的区别?
- 项目里怎么用的Redis?
- 怎么保持Redis和数据库的一致性?
- 编辑文件用什么指令?不报错就退出怎么操作?
蔚来-二面-8.10
35min
女面试官,很温柔,感觉是做纯测试的,不怎么懂开发,但是问的范围又没有跳出简历 面过的最简单的一场hh
- 我看你的简历是偏开发的 为什么选择测开?你觉得你的优势在哪里?你怎么理解这个岗位?
(面试官接了个电话)???
- 你这个项目里UV和DAU是什么呀 怎么统计的?
- 项目里怎么做的压测?
- 你怎么用Jmeter的?有什么注意的吗?
- 接口调不通应该怎么排查?
- 做题:88 合并两个有序数组
在飞书平台做 题目有点坑 题目上假设nums1有足够的空间 但其实没有 写的时候需要自己补零 卡了一会才调通
和面试官解释了一下,她说不怪你是题目的问题hh
大疆-一面-8.26
20min。。。
- 你对大疆有什么了解吗?
- 你觉得自己有什么优势什么劣势?
- 简单介绍下你的项目
- 你的项目难点是什么?怎么解决的?
- 有没有做一些优化呢?
- 你怎么用Redis来实现高可用性的?
- Redis为啥快?
- 任务调度为啥选择Quartz?在分布式任务中有啥好处?
- 除了个人项目外还有没有和别人合作的项目?
- 平时是怎么自学的?
- 实验室是做算法的为啥来做后端?
整体上其实问的都比较开放,也不难,但是从面试官的语气感受到了嫌弃,感觉他好像不是很感兴趣,是集中面试他应该要赶下一场,很快就结束了orz
zoom-一面-8.30
45min
- 敏感词怎么过滤的?
- 是只有初始化的时候用了是吗?
- 在1000万电话号码 内存肯定放不下嘛 如何判断某个号码是否存在?
- 用前缀树怎么做知道吗?讲具体点
- redis的过期策略?
- 为什么用redis?
- 业务层保证避免同时执行同一个任务?
- 为什么用kafka不用其他的?
- 如何实现定时任务的?
- 如何保证同一时间只有一台服务器去执行这个定时任务?(答了数据库加锁 面试官不太满意)
- 线程池的核心参数有哪些?
- 拒绝策略有哪些?
- 如果丢弃并抛出异常,溢出任务就没法执行了,你会怎么优化?
- 如何自定义拒绝策略?
- execute和submit区别?
- 线程池中断一个线程异常了怎么处理?
- 讲一下索引
- 如何用DB存ip地址?
- 用行锁有哪些注意事项?
- 如果没有用到索引会发生什么情况的话行锁会发生什么情况?
- 如何用DB实现商品的购物车分享?
美团-一面-8.30
45min 女面试官 很温柔 问的也很简单
- 用到了kafka是吧 有序性怎么保证?
- 追问:生产者和消费者是与一个分区交互还是多个?
我看你项目太简单了 我就不问了(。。。。。。)问你点基础吧
- ArrayList和LinkedList的区别
- 追问:ArrayList怎么初始化知道吗?
- 追问:讲一下ArrayList扩容
- HashMap底层
- 追问:为啥是8?为啥是6?
- 讲一下volatile关键字
- 可见性和有序性怎么保证的?
- synchronized底层知道吗?
- synchronized只能用来修饰方法吗?
- synchronized和lock的区别
- 讲一下常用的垃圾回收算法
- 讲一下索引?
- 为什么用b+树不用b树
- b+树的叶子节点是什么?
- 聚集索引和非聚集索引
- 讲一下事务的隔离级别?
- 21 合并两个有序链表
字节-一面-8.31
测开70min
- 点赞怎么实现的?
- 关注怎么实现的?
- 生产者是什么?消费者是什么?
- ArrayList和LinkedList的区别
- 垃圾回收算法
- OSI七层模型
- 应用层的协议有哪些?
- 传输层有哪些协议?
- 哪些协议是基于tcp 哪些是基于udp?
- tcp和udp协议区别?还有呢?
- tcp如何保证消息可靠性?
- 设计一下发朋友圈测试用例?(功能 性能 兼容 ui 安全 易用性每个都盘了)
- 如果突然白屏了要怎么排查?
- 我看你以前投的都是后端 为什么选择了测开?
- 你觉得你做测开的优势在哪里?
- 做题:221 最大的正方形
顺丰-一面-9.6
23min
- 你这个项目的背景是什么?(尴尬 能有啥背景啊)
- 为什么使用redis?是什么需求让你一定要用它????
- 为什么使用kafka不使用rabbitmq?(输出一顿八股 面试官不太满意)
- 可以从业务的角度回答下吗?是什么功能让你在kafka和rabbitmq中选择了kafka?
- bitmap怎么用来统计DAV?为什么用bitmap?
- 做题
做饮料
准备材料 prepareReceipe()
准备水 prepareWater()
倒入杯中 pourInCup()
添加材料 addCondiments()
做 奶茶,咖啡,抹茶 用标准流程怎么实现
评价:为什么选择这些中间件要有自己的思考 不要为了使用而使用
美团-二面-9.7
50min
- 你这个项目是在什么背景下做的
- 你这个性能从12.5提升到180 为什么能提升这么多 你做了什么操作?
- 为什么之前的是12.5 为什么这么低?
- 你是在什么机器上跑的 自己电脑嘛 内核是多少?
- 如果你的电脑只开启一个SpringBoot程序 就只输出一个字符串 你觉得TPS能有多少
- 那你这个12.5对比来说为什么这么低。。。。。。
- 你能不能想办法从180提升到1800。。。
- SpringBoot如何识别你的请求是一个http请求的?
- (我回答SpringMVC的消息转换器?)你这是已经识别为http请求之后的动作?怎么识别呢?
- 你的帖子表结构是怎样的?
- 有没有用到什么索引?
- 会有慢查询的情况吗?
- 写SQL (好久没写了。。。)
- 做题 合并区间
- 能来实习嘛?能实习多久?
- 现在有没有别的offer?
字节-二面-9.8
测开60min
- 为什么选择测开?(os:因为后端不要我hh)
- 你觉得你项目的难点是什么?
- 为什么要用threadlocal?
- 点赞关注你怎么实现高性能的?
- 项目部署了嘛?计划怎么部署?
- 讲一下实验室项目?
- 审稿人为什么对你的idea认可呢?没有没什么衡量结果的标准?
- 线程和进程的区别
- 进程间的通信方式?
- 为什么要有用户态和内核态?
- 在浏览器上输入 url 地址后会发生什么?
- 讲一下索引 主键 事务?
- 什么情况下用索引不好?
- 讲一下数据库范式?
- 一定要遵循范式吗?
- 数据库什么情况下要读写分离?
- 面向对象的三大特征
- 健康码测试用例
- 抖音白屏怎么排查?
- 做题:两个list求相同元素
- 时间复杂度是多少?
- 还能优化吗?
- 对这段代码编写测试用例
- 如果是两个无限队列怎么办?
- 平时有什么兴趣爱好
用友-一面-7.28
(22min)(寄)
八股
- 使用过什么框架,对Spring有什么理解?
- Spring的IOC思想是什么?实现了什么样的功能?如果让你简单写一个IOC的例子,你准备怎么办?
- Spring AOP概念是什么?动态代理如何理解?动态代理实现了一个什么样的目的,怎样达到动态代理?
- 面向接口/面向对象编程如何理解?
- 继承父类和实现接口有啥区别?为什么有父类后还要有接口?
- JVM的理解,它是用来干嘛的?JVM的内存如何划分的,大概说一下它的内存模型。
闲聊(感觉已经寄了)
- 你认定了后面要做Java开发工程师吗?你后面想要主要主攻抽象框架、算法方面;还是想做业务模块,软件这一方面?是更想跟进业务,做些产品出来吗?
- 那你对于未来的规划,毕业之后,几年内要达到一个什么样的水平?
- 工作中遇到需要用的新框架知识,很急,你完全不会,那你准备咋办?
- 那么目前你觉得自己首先得学习什么知识,或者得去补哪些知识?
- 如果你做了一段时间的软件开发后,你觉得自己是更适合做开发+管理类的工作还是选择深耕技术,做技术达人呢?
- 项目冲刺阶段,加班如何看待?
- 反问
锐捷网络-一面-8.11
软件测试工程师岗位
8.11上午面试(约30min)(说是过了,但是迟迟没有下一面)
- 自我介绍后,面试官对我研究生期间做的几个项目比较感兴趣,聊了约15min。
- 关于SpringBoot论坛项目的提问:(6min左右) 消息队列,缓存如何使用的,如何用这些来提高系统性能?
- 有出现过数据库与缓存不一致问题吗?
- 项目有测试过吗?JMeter压力测试如何测试的?得到了什么样的结果?如何衡量你这个系统是稳定的?
- 做这个项目中遇到的最大的问题是什么?如何解决的?
- 后面就一些偏向于HR面的问题,聊关于自身情况,岗位,公司业务,团队方向等等方面的问题?
- 反问
锐捷网络-二面-9.3
兴业数金-一面-8.24
Java开发工程师
20220824 总体时长(<15min)(寄)
1、介绍一下你的java项目
2、数据库如何设计的?数据库的三大范式,你的表中有没有冗余部分,什么场景下我们会设计有冗余的表违反数据库的三大范式?
3、如何判断你的数据库的执行效率是快还是慢呢?
4、有用过 mysql 的 explain关键字吗?不太了解啊?
5、Redis,你是用的什么样的数据类型存储的用户的基本信息?Redis用来存用户基本信息,就这个。
6、Redis常用的数据类型,各种数据类型的应用场景?
7、用中间件做缓存的时候,比如Redis,它有哪些部署模式?
8、做Spring Boot 的学习项目时候,Spring中很重要的部分,注解,那么你常用的注解有哪些?
9、好吧,那我们再问一点,像 Java里常见一点的,你大概知道像Java里的反射是指什么吗?
10、那么实际上你有用过吗?这么获取一个类的私有属性呢?用什么方法呢?
11、就刚刚说的,获取它其中一个属性的话,怎么获取呢?
12、最后再问你一个,像多线程的话,你正常创建多线程的方式有哪些呢?
13、那就到这里吧,那反问吧?
完美世界-一面-8.25
Java开发工程师(提前批)
20220825 面试时间(约45min)(5点面,9点寄)
被面试官严刑拷打了40min,面试官比较年轻,中途多次被我菜笑!?
- 自我介绍
- ThreadLocal类你了解吗?说说它的实现原理?
- 线程池使用过吗?
- CountDownLatch了解吗?
- HashMap的底层结构了解吗?聊聊
- HashMap的Key对变量类型有要求吗?
- 你对哪个方向比较了解?我们聊聊?面向对象面向过程的区别?
- C++和Java都是面向对象,这两者的区别?
- 计算机网络:TCP,UDP的区别?
- TCP如何保证连接的可靠的?
- TCP三次握手的流程,详细说说?
- 每次握手的请求都可能丢失,说说每次请求丢失后会发生什么?比如第一次请求就丢失了呢?
- 请求是如何重传的呢?
- 第一次没丢失,第二次响应SYN的时候丢失了呢?
- 3次握手维护的两个队列,了解吗?
- TCP拆包粘包了解吗?如何实现的?
- JVM了解多少?JVM内存结构是什么样的?哪块区域不会发生OOM
- GC算法了解吗?如何标记需要回收的对象?
- 你了解哪个垃圾回收器的实现?CMS的回收流程是什么样的?分为几个阶段?中间有几次STW时间?
- 数据库了解过哪些?MySQL的InnoDB索引的组织结构是什么样的?
- B+树的优势在哪?
- 设计表的时候主键是如何选择的?为什么主键是个自增变量?UUID也是唯一的?
- 聚簇索引和非聚簇索引的区别?回表查询是一定会执行的吗?(覆盖索引)
- MVCC了解吗?它里面包含哪些要素,由哪些组成的?
- 消息队列,Kafka是在什么条件下去用的?
- 用消息队列的好处是什么?Kafka为什么具有这么高的性能?它由哪些部分组成?
- Broker,Producer,Consumer他们三个是如何交互的?
- 消息会发给每个服务器吗?消费者哪消息是基于哪种模式(Push or Pull)?
- RPC了解吗?
- Redis的数据结构?有序集合的底层是什么结构?
- 跳表?跳表你了解吗?
- 数据结构:栈了解吗?如何用栈实现一个加减乘除四则运算的计算器?两个栈实现?或者说你知道后缀表达式吗?逆波兰表达式?
- 那我问问树方面的,huffman树了解吗,xxxx结点(没太听清)?
- 如何评判代码好坏?
- 写道题吧,口述下你的思路吧,两个公共字符串的最长公共子序列——lc1143,口述dp的状态转移方程?
- 反问,基础确实得巩固,今年行情也不好,面试大概10进1,更看重校招生的基础能力,除了Java以外,网络,数据结构,算法都很重要。
ThoughtWorks-一面-9.4
一小时,打开IDEA写了两个需求。
联影-一面(电话面)9.5
主要问了简历上的项目经历加一些八股。
阳光电源-一面(电话面)9.8
主要问了简历上的项目经历,疯狂劝我去迈瑞,迷惑。。。
中望软件-一面 9.13
体验较差,面试官左右四顾而言他,
华为-一面 9.14
大部分时间聊硕士期间做的项目,论文,专利。
- 为什么用Kafka做消息队列
- 微服务了解吗?
- 适配器设计模式了解吗?
- 听我说笔试就10x分,手撕了一道原创题,很简单,给了一段英文,统计其中出现频次最高的词并输出(IDEA写)。
富途-一面-9.14
项目:
- 介绍项目,帖子表,点赞表如何设计?项目中帖子中支持什么格式的数据,文本?超链接,图片支持吗?
八股:
- 快排,归并排序介绍,复杂度介绍,归并快排的差异
- TCP,UDP差异?
- 什么是报文?什么是字节流?
- TCP拥塞控制是在什么场景下出现的?
- 内存堆,内存栈的区别
- 进程线程区别
- 进程为什么执行开销大
- 用户态如何切换到内核态
- 散列表发生哈希冲突时,会发生什么?
- 开发地址探测法如何实施的?
- 如果让你设计一个Hash函数,输入64位整数,输出64位整数,如何设计
智力题:
- 7个篮子,每个篮子7个橙子,有一个篮子的橙子7两/个,其他篮子的橙子10两/个,有个电子称,现在只能称一次,如何找到7两/个的那个篮子?14
- 140g盐,现在有7g,2g砝码各一个,一个天平,如何操作三次,把研分为50g, 90g两份?
手撕
lc543 二叉树最大直径
华为-二面 9.21
主要都是在聊硕士期间做的项目,后面问了些java相关的问题
手撕lc1208
https://leetcode.cn/problems/get-equal-substrings-within-budget/
华为-主管面 9.26
主管面问些很开放发问题,结束后十分钟内出结果,泡池子了。
富途-一面-9.14
项目:
- 介绍项目,帖子表,点赞表如何设计?项目中帖子中支持什么格式的数据,文本?超链接,图片支持吗?
八股:
- 快排,归并排序介绍,复杂度介绍,归并快排的差异
- TCP,UDP差异?
- 什么是报文?什么是字节流?
- TCP拥塞控制是在什么场景下出现的?
- 内存堆,内存栈的区别
- 进程线程区别
- 进程为什么执行开销大
- 用户态如何切换到内核态
- 散列表发生哈希冲突时,会发生什么?
- 开发地址探测法如何实施的?
- 如果让你设计一个Hash函数,输入64位整数,输出64位整数,如何设计
智力题:
- 7个篮子,每个篮子7个橙子,有一个篮子的橙子7两/个,其他篮子的橙子10两/个,有个电子称,现在只能称一次,如何找到7两/个的那个篮子?14
- 140g盐,现在有7g,2g砝码各一个,一个天平,如何操作三次,把研分为50g, 90g两份?
手撕
lc543 二叉树最大直径
电信天翼云-一面-9.22
20220922 一面
- 介绍一下你所学的Java相关知识,
数据结构算法->Java语法->Java集合->数据库,Spring框架的使用->中间件学习与使用
数据结构与算法
- Java集合中那些数据结构是跟二叉树有关的?红黑树相比于链表的优点?
- 判断链表相交如何做?用快慢指针可以实现吗?
- 快排原理?冒泡排序原理?堆排序的原理?
- 回溯算法的原理?
- 动态规划算法的原理?
- 二分查找的原理?
计算机网络:
- 计算机网络中快速恢复算法是在什么场景下使用的
- 那拥塞避免算法和xxx(忘了)是用来干什么的?
操作系统:
- 内存碎片是如何产生的?
MySQL
- Mysql防止幻读的隔离级别是什么?
- 这几种隔离级别是为了应对什么问题,为什么这样设置的?
Java
- SpringBoot的热启动与热部署是什么?
- 垃圾回收算法介绍一下
- 给JVM的栈空间设置的比较大时,会发生什么?
- 项目中用到的常量一般是在JVM哪个区域分配的空间?
用友-一面-7.29
- 聊聊项目,使用的技术,Redis、Kafka、ES用在哪里,实现什么功能
- 前缀树实现,项目中ThreadLocal的使用
- 在线IDE项目中,动态编译是怎么实现的,ThreadLocal原理
- 线程池了解吗?
- 分布式事务有了解吗、TCC了解多少?
- Sychronized底层实现
- Spring的设计模式,SpringBoot启动原理
- 分布式框架SpringCloud、Dubbo的使用?
- RPC的基本原理
- 缓存击穿,数据库和缓存的一致性
- 机械臂强化学习项目介绍
- 算法比赛参与了哪些,聊聊排序,冒泡、快排、归并
- 唠嗑,聊聊写书的内容,元宇宙、NFT、VR
- 唠嗑,面试官说公司的系统基于React,分布式架构,很多中间件都是自研
- 反问1,加班情况,比大厂少,隔一天加一次班
- 反问2,公司租房,在海淀,位置比较偏,也有2000多的房子
- 反问3,公司ERP系统发展前景,比金蝶强,华为虽然也在做,但是还是没有我们30年的底蕴
- 评价:我觉得你接触的比较广,区块链、机械臂。。问题回答的还不错,但是缺乏具体业务的实践,我比较喜欢你比较学习的态度
用友-二面-8.3
- 聊聊自己最拿手的项目:Java IDE,聊的很深,20分钟,面试官是做JVM的
- 类加载机制,动态编译的具体过程
- 双亲委派机制,自己的类加载器如何实现,是否每次都要加载Java核心类库,如何实现
- 项目中ThreadLocal的使用,原理
- 获取Class对象的三种方式
- 反射这么方便,我们就不用new对象来写代码了,可以吗?不行,安全性考虑
- 动态代理和静态代理的基本原理,JDK和CgLib动态代理的区别
- 分布式事务特性,CAP、BASE等,Redis是CP还是AP,谈谈理解,我猜的CP
- MySQL8.0和5的区别,MySQL8在去除缓存后如何优化的?
- MyBatis的基本流程,设计模式,常用的关键字,表达式,#{},${}区别
- 用的什么IDE,快捷键哪些用的比较多
- Spring AOP、Ioc基本原理
- Kafka在牛客网项目中的作用
- 强化学习项目,和传统的机械臂控制的区别?稍微介绍了一下
- 闲聊1:两个算法比赛,负责什么部分,有哪些算法,什么平台,属于什么级别,绩点排名
- 闲聊2:学校做的东西和企业的区别
- 闲聊3:就业、读博规划打算
- 闲聊4:什么时候能来实习?不给实习
- 闲聊5:用友笔试难度怎么样?我觉得比较符合考生情况,贴合实际
- 反问1:北京和深圳怎么选?答:看地方看朋友看饮食天气,其他都差不多
- 反问2:一名优秀的程序员的特质?不同时期要求不一样,抗压能力、自学能力。。。说技术一两年大家都差不多,一个业务的积累需要六七年,精通业务比技术有时候更难
- 评价:现在很多面试的人懂的框架都特别多,但是懂底层的很少,我觉得你底层掌握的不错
用友-HR面-8.11
- 本科硕士都是和计算机相关,谈谈为何选这个专业
- 目前做过令你印象最深的一个项目,自己承担了什么角色
- 参加的算法比赛,介绍一下
- 对用友公司的了解
- 介绍一下国科大,你们院处于什么水平
- 如何提升自己的核心竞争力
- 职业规划选择,为何放弃读博
- 对工作城市的选择
- 目前遇到最大的挫折
- 为什么没有实习经历?考研,老板不给
- 高中有没有复读
- 大学有没有挂科
- 选择公司的时候最看重哪几点?
- 薪资要求,投递、面试情况,你是如何了解用友的薪资水平的?
- 反问1:周六加不加班?一般公司不要求加班,看部门
- 反问2:试用期几个月?试用期三个月,会有一次转正答辩,除非水平很差,应届生比较宽容,基本都会过
- 八月底给意向书,十月确定offer的合同薪水
顺丰-一面-9.9
自我介绍
项目
- JavaIDE担任了什么角色,运行流程,实现了什么模块
- 类加载流程
- ThreadLocal原理
- 牛客网部署了没有,如果上线,你要考虑什么问题
- 强化学习机械臂项目介绍一下,用的算法是你自己实现的吗
八股
- MySQL数据库量大,如何优化
- explain
- 横向、纵向分表,规则
- Redis的基本数据结构以及使用场景
- Redis缓存雪崩、缓存穿透、缓存击穿概念以及解决方法
反问
- 顺丰目前Java的业务有哪些?
答:基本都是Java,正在扩展大数据技术栈
- 顺丰业务面对的竞争对手
答:行业龙头,对自己的技术很有信心
- 试用期?是否要求强制提前实习
答:试用期三个月,是否强制实习问HR
顺丰-二面-9.18
- 类加载机制
- ThreadLocal原理,为什么要用弱引用
- 强、软、弱、虚引用,软引用的实际案例
- SpringBoot的@Controller的作用域有哪些
- Redis的部署方式,哨兵和集群哪种场景使用
- 项目有没有上线?问了三次
- JIT编译器、其中JDK1.8的JIT分层编译了解吗?
- RDB持久化的过程
- Redis在牛客网中的作用?点赞的实现
- 点赞持久化到数据库中了吗?数据库缓存的一致性以及解决方案
- 反问1:顺丰的业务和技术栈,SpringBoot、SpringCloud、ClickHouse等主流的技术栈,业务主要是快递运输、大数据分析
- 反问2:顺丰相比于货拉拉、满帮的优势?顺丰全能业务量大、后面大多是拉大件和搬家
蚂蚁-一面-9.20
50min
- 项目、比赛、学校问的都很仔细,比赛什么级别,金银铜牌分别多少个;问我本科是不是211,考研你们那一届情况怎么样;项目是不是实习项目?
项目
- 说一下这个项目从前端到后端的整个流程
- 为什么要用字符串改器修改符号引用
- System.out为什么是输出不安全,即使线程不安全,我也能得到自己的输出啊,我觉得没有问题,为什么要用ThreadLocal封装,封装了什么,前端展示界面也是System.out吗,你怎么封装的,放在前端展示?
- 问:为什么每次修改这个客户端的类,都得new 一个类加载器,如果不修改,每次都输入一样的,怎么判别呢?有什么改进空间?
答:加缓冲区,用来判断每次的输入是否相同
问:怎么判断是否相同?
答:通过编译后的字节码来判断是否相同(瞎说的)
问:如果输入的字符串太多,你怎么优化呢?
答:切割,做多线程处理
问:这个项目支持package吗?如果要对这个项目进行扩展,实现多个package,让项目变大,你如何优化?
答:双亲委派机制,鉴别安全。。。(瞎说)我不会了,哑口无言,沉默半分钟
基础
- ThreadLocal还用在其他什么地方
- 访问一个网站的所用的协议
- 进程之间通信的方式
- Http/Https,Https的流程,即使有了CA证书,是客服端保证服务端发来请求安全,那么服务端如何识别客服端发来的请求,保证安全
- static方法可以调用普通方法吗
- 抽象类的方法可以修饰吗
- 抽象类和接口的区别,使用场景,为什么要用抽象类和接口,有什么好处
反问1:蚂蚁的网商银行和微众银行一样是互联网银行吗?和普通的银行的区别?业务方向?
答:没有实体,只有杭州一个,然后说了一些银行业务等等,和微众银行对飚
反问2:技术栈,用的很多都是自研框架吗?答:是的,很多自研技术
反问3:新人培养方式?答:新人前三个月都是培训期,蚂蚁的新人培训非常用心
反问4:试用期?答:3个月
电信天翼云-一面-9.20
两个面试官连着问的(30min)
- 研究方向,做的什么,详细说一下,创新点在哪
- 为了方便传输,如何将一个四字节的字段变成一字节的???
- 在64位系统中,int类型在java中如何存储的,所占空间有多大
- 类加载机制
- 软中断和硬中断
- 常用的Linux命令,top、df -h、free、ps
- 翻转链表的两种思路、时间、空间复杂度
- 自己实现一个简单的C/S系统
- 三次握手、四次挥手
- Redis缓存穿透、击穿、雪崩的解决方案
- 数据库的隔离级别以及如何实现数据库的隔离级别
- 如何优化数据库、explain
- 口述了一段代码,用一个类有一个sychonized方法,两个线程是交替执行还是并行,什么时候会死锁
- 反问1:天翼云的业务方向?和腾讯云、阿里云差不多,进去后会分配,不一定是后端
- 反问2:加不加班,和互联网公司有什么区别?HR面告诉你
电信天翼云-HR面-9.27
- 详细介绍你的研究生课题项目,反问一堆
- 你剩下两个项目都是开源的吧?是的
- 本科研究生有没有挂过科?
- 本科成绩前10%,为什么没有保研?
- 为什么会考虑Java开发方向,而不是你的课题方向?我说今年就业情况不好,他们都笑了
- 学习Java的方式
- 最近读过的技术书籍
- 目前有哪些offer
- 期望薪资?
- 反问1:深圳和上海的业务有哪些不同呢?
答:上海市本部,而深圳只有数据库业务,以后还会增加
- 反问2:试用期和新人培养流程
答:试用期六个月,有配导师,有三年的培训周期???
荣耀-一面-9.26
30min
- 有没有获取过奖学金?本科专业?
- 点赞如何实现,项目中哪里用到redis
- 一级缓存如何跟二级缓存保持一致
- 缓存和数据库的一致性方案
- 设计模式了解哪些?说一下双重校验的单例模式如何
- SpringBoot的启动流程,如何完成bean的注入
- 在高并发下,是用CPU密集型还是IO密集型?在面试官的提示下,是IO
- HashMap的数据结构,put流程
- Java异常分类,Error异常如何捕获
- 分布式事务原理
- SpringCloud了解吗?注册中心在单机的情况下,如果挂了,是否能获取服务?短时间可以?说了不会了,还是问
- 算法题:
荣耀-主管面-9.29
20min,面试官一直在笑
- 参加过什么志愿者活动
- 有过支教活动吗
- 自己喜欢什么运动
- 自己从学习这两个java项目中有了什么体会
- 强化学习的项目介绍一下,目前是理论还是落地了
- 加班能接受了,怎么看待加班
- 先进院是考的还是保的,为什么会选择深圳
- 为什么会选择荣耀
- 反问1:什么时候签合同?答:三周后
- 反问2:荣耀业务?1.手机云服务 2. 类似淘宝系统,将货卖给渠道商,也包括维修手机部件的信息(主管自己的部门) 3. 安卓
百度-一面-7.22 (凉经)
- 社区项目:数据表怎么设计的?(好久没复习了没答上来)
- 实习干了什么?
八股文
- 输入URL地址过程:
- DNS详细过程
- ARP协议详细过程(IP地址怎么找到MAC地址)
- TCP,三次握手
- TCP和UDP区别
- Http协议:http1.1/http2/http3
- UDP怎么实现可靠传输
- 状态码
- http和https区别
- 操作系统:进程和线程的区别
- 栈和堆的区别
数据库
- 日志:binlog,redolog在事务提交前还是提交后写入?
- 事务相关
- 笔试题:字符串转整数(atoi)
美团一面-8.16
自我介绍
项目:介绍一下项目
怎么发布帖子?
点赞怎么实现?
说了下redis怎么存储的(set,string),业务逻辑
又问怎么排序?
这里理解错了,说了热帖排行,其实就是问为什么不用zset实现点赞
帖子太多怎么办?
问web容器用过吗,jboss知道吗?(不知道)
介绍一下Spring,Spring IOC 和 Spring AOP
Spring mvc原理
Spring用过哪些注解?
@Autwired 和 @Resource区别?@Autwired没有指定类型会怎样?
消息队列怎么推送信息?
消费者,生产者是什么?
为什么用kafka?和其他消息队列对比呢?
介绍下本地缓存caffie,在分布式的情况下怎么使用本地缓存?
你用到了Redis,那你对Redis的了解有多少呢?(Redis八股文背诵)
压测怎么实现的?
线程池:
参数有哪些
拒绝策略
存活时间到了核心线程可以删除吗?
遇到过高并发的情况吗?(说了实习遇到的问题)
JVM:
垃圾回收器有哪些?说一下
CMS和G1相比有什么优点
Mysql:
Redis和Mysql怎么连接的呢
快手一面-8.16
介绍一下论文,实习
社区项目:从前端到后端实现点赞的流程
算法:
- 92 反转链表||
- 125 验证回文串
华为一面
算法: 页码显示,对于总页码N < 7显示所有页码,反之则最多只显示7个页码(首页页码、尾页页码、当前页K以及当前页前后两页的页码);未显示的连续页码用省略号“…”代替。 如:N = 94,K = 5,则显示页码1 … 3 4 5 6 7 … 94;N = 94,K = 93,则显示页码1 … 91 92 93 94。 输入:两个空格分开的整数N, K(1≤ K ≤ N ≤ 100),分别表示总页数和当前页。 输出:所显示的页码,用空格分开,未显示的连续页码用省略号”…”统一代替。
说了下学校和实习的项目
问你上一个同学也是做的牛客项目,你是在哪里看的?
log4j之前有个漏洞影响挺大的你知道吗?
git reset 和 revert的区别是什么?
贝壳一面 9.17
项目:
介绍一下项目怎么实现
为什么用caffine不同Guava?
本地缓存怎么和数据库同步的?
Redis怎么和数据库同步的?
点赞是怎么实现的,设计了几张表?
实习都干了什么?
介绍一下学校项目
八股:
说一下数据库的日志
线程池实现原理
算法;
排序算法会吗?随便写一个排序算法(快排)
贝壳二面 9.17
Spring boot 自定义starter原理是什么?
spring mvc实现原理,适配器的原理是什么?
Redis用过吗?Redis主从复制怎么实现的?第一次主从复制时怎么样的?用哪个命令实现?
Kafka如何实现有序?reblace了解嘛?
给你一个文件,10亿行数据,每行是不同的正整数,让你给这个文件排序你会怎么排?
华为一面
算法: 页码显示,对于总页码N < 7显示所有页码,反之则最多只显示7个页码(首页页码、尾页页码、当前页K以及当前页前后两页的页码);未显示的连续页码用省略号“…”代替。 如:N = 94,K = 5,则显示页码1 … 3 4 5 6 7 … 94;N = 94,K = 93,则显示页码1 … 91 92 93 94。 输入:两个空格分开的整数N, K(1≤ K ≤ N ≤ 100),分别表示总页数和当前页。 输出:所显示的页码,用空格分开,未显示的连续页码用省略号”…”统一代替。
说了下学校和实习的项目
问你上一个同学也是做的牛客项目,你是在哪里看的?
log4j之前有个漏洞影响挺大的你知道吗?
git reset 和 revert的区别是什么?