大厂面经(Java方向)

字节-一面-7.21

项目

  1. 项目具体细节问题(此处省略)
  2. 你说重构后运行速度提升了 是为什么提升了?
  3. 多级缓存怎么设计的?
  4. 项目用到了MongoDB存储,mongoDB的原理实现了解的多吗?
  5. (论坛项目)前缀树过滤敏感词怎么实现的?
    1. 有对前缀树持久化吗

算法题

  • 207 课程表

其他

  1. 我看你研究生做CV的 为什么后面想着转到做工程了呢?

总结

  1. 算法题没有思路了 一定要冷静 和面试官交流讨论 给出思路 也可能过
    1. 这次如果不积极讨论 中途直接说写不出来了 肯定就挂了

字节-二面-7.27

研究方向及论文

  1. 介绍一下你的研究方向吧
  2. 那说一下你的这篇论文 相比于其他人的方法 创新点在哪里
    1. 怎么做的 为什么你这么做 效果更好?
    2. 现在准确率可以达到多少?

项目

  1. 你工程方面,做过什么项目,熟悉哪些技术?
  2. 你对项目做了什么优化?怎么优化的?
  3. 项目具体细节问题(此处省略)

算法题

  • 有n个排好序的数组,找出前m个小的数

反问

  1. 面试官表达了对我没有实习经历的嫌弃orz, 说还是要去公司实习才能知道业界具体是怎么做的

百度-一面-8.3

(全程就是聊项目+项目延展技术点 很奇怪没有算法题)

  1. 实验室的项目是一个什么项目呢?(自我介绍只说了java项目)

Java基础:

  1. 聊一下你对OOP的理解 比如多态 封装等等
  2. 刚才你说到了重载和重写 有没有了解他们之间的差别呢?
    1. 那重写的话 假如父类的声明时throw一个IOexception 那我的子类去重写的时候可以去throw一个exception吗?
    2. throw的范围有什么什么差异或者要求呢?
  3. Java的一些集合类你都有用过吧?举一两个你比较熟悉的 然后给我讲一下它的使用场景、与其他类型的差异、实现原理的东西
    1. ConcurrentHashMap你在项目中有使用到吗

项目+技术使用:

  1. 你说项目中用了多线程,当时的一个场景是什么样子 为什么要用多线程?然后怎么去用的呢?有没有遇到什么问题?
    1. 100万数据量并不是很大 你说是用csv读的是吧 读过来之后是放在内存里面吗?
    2. 你使用多线程的时候用到了池子是吧?当时对线程池的设置有关注过吗?
  2. 在项目里面 还遇到过什么问题 通过技术手段去解决了呢?
  3. 你项目做完 还在优化它 有些什么优化思路呢?
  4. 如果改进成分布式 比如现在100万 后面数据集用上1个亿数据量,你觉得你们现在的架构体系,瓶颈会在哪里?
    1. 现在你们使用mongDB 做了什么索引?
  5. 在另一个项目(论坛)有没有遇到什么技术问题?
    1. 介绍一下前缀树过滤敏感词怎么做的?
      1. 有跳过字符—就是一个demo性质的东西是吧?
    2. 有没有去了解过 业内是怎么去做这种敏感词过滤的?

项目+技术原理:

  1. 有用到数据库吗 除了mongoDB–mysql
    1. 现在你假如要去建表 建表有哪些注意事项 你会去怎么考虑,比如表的字段啊 结构啊 索引啊 表之间的关系啊
    2. 会考虑使用外键之类的东西吗?
      1. 不建议用外键 是为什么不建议呢?
    3. 有没有用过explain这个命令呢?
      1. 一般你会关注什么信息呢?
    4. 我一张表 很多字段都可以加索引 都加上了 你觉得这是一种好的行为还是不好的行为?
  2. redis我看你也用了 单纯的作为一个k-v存储是吗? 还是有一些其他的用处?
    1. redis很快 为什么快呢?
      1. 你说的单线程 是整个redis都是单线程呢 还是说什么范围是单线程呢?

b. 哨兵了解吗

c. 有没有用它去做分布式锁这种东西?

d. 假如你项目要做规模化分布式化 redis在里面可以扮演什么角色??

  1. 这两个项目都是spring的吧 spring的常用概念比如IOC AOP 说一下你的理解
    1. 你提到IOC是作为一个帮我们管理bean 假如有循环依赖的情况 你知道spring是怎么处理的吗?
    2. AOP的东西 你在项目中有使用到吗?
    3. AOP有什么限制吗 比如说哪些可以用 哪些不可以用? 在你的项目中 比如有一些方法级的注解 应该有一些限制吧?
  2. 除了spring之外 类似的框架有了解吗
    1. springboot解决问题的场景是啥?或者说为什么有它呢?
    2. springboot有没有什么不足 在你使用过程中?或者这种它帮你做了starter做了约定配置 在你看来有没有可能哪里会有些限制?
  3. 你的这些服务都是物理机部署吗 还是用到了容器之类的?
    1. 云部署但还是物理机
    2. 容器相关的有了解吗 Docker啊 k8s啊
  4. 第一个项目是协同开发 应该有用到类似git代码版本管理是吧?
    1. git init了一下 它应该是在你的代码库目录下生成了一个.git文件夹 有没有去看过它里面的内容呢
    2. git rebase有用过么 什么场景下使用的??
  5. 部署的时候应该是用的linux的机器是吧? linux的常用的命令了解吗 咱不说太easy的比如cd mkdir啊这些 有没有用过一些比如诊断啊 查看机器状态啊 排查问题之类的命令?
    1. top命令 你还记得它会打印出什么东西吗 它应该是一个经典的三段式的东西
  6. JVM之类的命令 有用吗?? 比如说jmap啊 jstat之类的
    1. 看字节码文件的时候 是参照这一些工具去看呢 还是说硬看呢?
    2. 还记得里面都有什么吗 它的结构之类的
    3. jstat你可能没用过 但是你知道它是什么吗?
  7. JVM相关的东西 都看过什么呢?
    1. 你的项目是用的JDK几? 8还是11还是17
    2. 有了解过GC的时候其实会产生Stop the world吗?
  8. 这两个项目里面 还有遇到过一些非技术性的难题吗

反问

  1. 小部门具体是做什么的?
  2. 给点评价 后面有哪些地方需要注意或者加强?
    1. 这个其实不太能说啊 说一点吧:自己写上的东西都要会 没有把握的可以不用写 简历上的确很丰富—-就是没有很深入的就没必要写?对

总结

  • 面试官提问的时候 是有意识要考察到这几个模块: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是怎么去做类加载的保证的 好像是有一个线程上下文的类加载器是吧?
  • 用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 最长递增序列–变种
  1. 输出最长递增子序列的长度
  2. 输出任意一个最长递增子序列
  3. 输出元素和最大的最长递增子序列
  • 上面三种 选一个做 会写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

  1. 什么时候开始接触Java的?
  2. 当时为什么选择做这个项目?
  3. 做这个项目之前有哪些准备?
  4. 项目中点赞关注怎么实现的?除了这些还有哪些数据结构,什么作用呢?list底层除了双向链表还有什么?压缩列表具体能讲讲嘛?什么情况下底层是zp呢?除了list外redis还有什么可以做消息队列?怎么统计的网站数据?
  5. redis单线程为什么快?10多路复用阻塞的是什么??
  6. 你的项目中对redis热点数据的处理?那数据太大怎么处理?

7.为什么用Caffeine效率提升那么多分析过嘛?

  1. kafka主要的组件讲一下?了解Consumer Group嘛?
  2. 除了kafka还了解哪些MQ?
  3. 项目中哪里用到了多线程?线程池讲一下?怎么设置这些参数了解嘛?
  4. 讲一下Java并发了解什么?volatile和synchronized的区别?
  5. threadLocal讲一下?还有个追问没答上来忘了。
  6. linux常用命令?怎么看cpu负载?
  7. 你学习过程中有什么印象比较深的?

建议:基础很好,了解的很深,看得出来对技术的热爱hh,希望你保持下去 对多线程多学习学习 个人项目和公司里是不一样的 希望后面也可以多实践实践.

蔚来-一面-7.27

数字系统测开 问的都比较浅 点到为止

  1. 讲一下前缀树处理敏感词?白名单你怎么用的?
  2. ES怎么用的大概说说?(后面的简历把ES删了hh)
  3. Jmeter你怎么测试的?数据怎么来的?
  4. ping www.baidu.com 用了哪些协议?
  5. 在浏览器上输入 www.baidu.com 地址后会发生什么?
  6. http和https的区别?
  7. 如何判断对象是否死亡?
  8. linux常用命令大概说一下?
  9. 那你大概说一下如何找到java开头的进程的进程号然后怎么停掉呢?
  10. 我看你写了解hashmap的原理 ConcurrentHashMap了解吗?有什么区别呢?
  11. 写个SQL语句吧 user id car id 显示一个人有多少辆车?
  12. 写个题吧 我就看看你写代码的风格:99乘法表

评价:我觉得你回答的挺好的呀 读过一些源码,说明你还是挺喜欢技术的hh(没问啥测试相关的 主要根据简历来 我简历里写了Jmeter所以问了一下)

百度-一面-8.1

测开一面凉经(50min)

  1. 常用的Linux指令你用过哪些(说了好多)
  • rm -rf中的r什么意思?
  • ps -ef中的e什么意思 f什么意思?
  • 关于网络的指令你还用过哪些?
  • cpu负载怎么看?
  1. 数据库索引讲一下?
  2. 建索引的时候有哪些注意事项?
  3. 什么时候用索引效率低呢?
  4. 做题:
  5. 回文字符串
  • 讲一下?
  • 优化一下?
  • 你怎么测试你写的这段代码?
  1. 692 前k个高频单词
  • 讲一下?
  • 如果数据量很大呢 怎么处理?
  • 你怎么测试你写的这段代码?

评价:我看你是计算机科班的 按理说有的问题我觉得你会回答的更好(你咋这么菜)我看你测试了解的也不多 我们部门主要是做测试的 如果你后续面别的公司还是测开岗的话这里要加强一下哦(886)

总结:其实问的很基础呀 面试官也很和善 但是我回答都是点到为止 应该展开说说 然后就是确实对测试了解的不多886

OPPO-二面-7.29

45min 算综合面

  1. 项目相关(点到为止,主要看思维)
  2. 怎么接触到这些技术栈的,比如做这个怎么想到用Redis,这个为啥要Kafka
  3. 你是怎么学习这些技术栈的?
  4. 为什么本科选择读计算机?
  5. 实验室是做算法的,为什么选择来做开发?
  6. 简单介绍下论文和在实验室的工作(他也不懂 就硬吹)
  7. 你在实验室和别人对接的时候有矛盾怎么解决?
  8. 遇到的困难是怎么解决的?
  9. 你们一般在实验室待到什么时候呀?(能加班吗嘻嘻)

OPPO-hr面-8.7

20min

  1. 我看你本硕都是计算机相关的专业,为什么读计算机?
  2. 你学过的课程里喜欢哪一门课?
  3. 意向工作城市是哪里?
  4. 有没有遇到过什么困难?怎么解决的?
  5. 对oppo有什么了解吗?
  6. 你提到创新,能具体一点吗?
  7. 你觉得好的工作环境是怎样的?
  8. 你觉得你在公司能够得到什么?
  9. 职业规划呢?

反问:新人培训 后续(1-2周 可能更快)

万集-一面-8.10

30min

  1. Java的装箱拆箱机制了解吗?
  • 追问:包装类型都有缓存池吗?
  • 追问:Integer的默认值是什么?
  • 追问:short的取值范围是多少?怎么来的?
  • 追问:十进制的16转换成十六进制是多少?(我说我算一下 他说时间紧没事。。。)
  1. 讲一下http协议
  2. 项目里面有没有做后端向前端主动推送数据?(没有)
  3. 项目里面有没有做动态实时数据的显示?(没有)
  4. 项目有没有部署?
  5. 用了Kafka是吧 你写了几个topic (忘了。。。)
  6. 如何根据时间戳消费数据?(不会 到这里感觉凉凉的)
  7. JDK1.8新特性?(答了lambda表达式 Stream Date)
  • 追问:用过Stream吗?
  1. HashMap的底层数据结构讲一下?
  2. 怎么解决粘包的问题?
  3. 线程池用过吗?讲一下拒绝策略?
  4. 讲一下归并排序
  5. 讲一下索引
  6. 内连接和外连接的区别?
  7. 项目里怎么用的Redis?
  8. 怎么保持Redis和数据库的一致性?
  9. 编辑文件用什么指令?不报错就退出怎么操作?

蔚来-二面-8.10

35min

女面试官,很温柔,感觉是做纯测试的,不怎么懂开发,但是问的范围又没有跳出简历 面过的最简单的一场hh

  1. 我看你的简历是偏开发的 为什么选择测开?你觉得你的优势在哪里?你怎么理解这个岗位?

(面试官接了个电话)???

  1. 你这个项目里UV和DAU是什么呀 怎么统计的?
  2. 项目里怎么做的压测?
  3. 你怎么用Jmeter的?有什么注意的吗?
  4. 接口调不通应该怎么排查?
  5. 做题:88 合并两个有序数组

在飞书平台做 题目有点坑 题目上假设nums1有足够的空间 但其实没有 写的时候需要自己补零 卡了一会才调通

和面试官解释了一下,她说不怪你是题目的问题hh

大疆-一面-8.26

20min。。。

  1. 你对大疆有什么了解吗?
  2. 你觉得自己有什么优势什么劣势?
  3. 简单介绍下你的项目
  4. 你的项目难点是什么?怎么解决的?
  5. 有没有做一些优化呢?
  6. 你怎么用Redis来实现高可用性的?
  7. Redis为啥快?
  8. 任务调度为啥选择Quartz?在分布式任务中有啥好处?
  9. 除了个人项目外还有没有和别人合作的项目?
  10. 平时是怎么自学的?
  11. 实验室是做算法的为啥来做后端?

整体上其实问的都比较开放,也不难,但是从面试官的语气感受到了嫌弃,感觉他好像不是很感兴趣,是集中面试他应该要赶下一场,很快就结束了orz

zoom-一面-8.30

45min

  1. 敏感词怎么过滤的?
    1. 是只有初始化的时候用了是吗?
  2. 在1000万电话号码 内存肯定放不下嘛 如何判断某个号码是否存在?
    1. 用前缀树怎么做知道吗?讲具体点
  3. redis的过期策略?
  4. 为什么用redis?
  5. 业务层保证避免同时执行同一个任务?
  6. 为什么用kafka不用其他的?
  7. 如何实现定时任务的?
    1. 如何保证同一时间只有一台服务器去执行这个定时任务?(答了数据库加锁 面试官不太满意)
  8. 线程池的核心参数有哪些?
    1. 拒绝策略有哪些?
    2. 如果丢弃并抛出异常,溢出任务就没法执行了,你会怎么优化?
    3. 如何自定义拒绝策略?
  9. execute和submit区别?
  10. 线程池中断一个线程异常了怎么处理?
  11. 讲一下索引
  12. 如何用DB存ip地址?
  13. 用行锁有哪些注意事项?
    1. 如果没有用到索引会发生什么情况的话行锁会发生什么情况?
  14. 如何用DB实现商品的购物车分享?

美团-一面-8.30

45min 女面试官 很温柔 问的也很简单

  1. 用到了kafka是吧 有序性怎么保证?
    1. 追问:生产者和消费者是与一个分区交互还是多个?

我看你项目太简单了 我就不问了(。。。。。。)问你点基础吧

  1. ArrayList和LinkedList的区别
    1. 追问:ArrayList怎么初始化知道吗?
    2. 追问:讲一下ArrayList扩容
  2. HashMap底层
    1. 追问:为啥是8?为啥是6?
  3. 讲一下volatile关键字
    1. 可见性和有序性怎么保证的?
  4. synchronized底层知道吗?
    1. synchronized只能用来修饰方法吗?
    2. synchronized和lock的区别
  5. 讲一下常用的垃圾回收算法
  6. 讲一下索引?
    1. 为什么用b+树不用b树
    2. b+树的叶子节点是什么?
    3. 聚集索引和非聚集索引
  7. 讲一下事务的隔离级别?
  8. 21 合并两个有序链表

字节-一面-8.31

测开70min

  1. 点赞怎么实现的?
  2. 关注怎么实现的?
  3. 生产者是什么?消费者是什么?
  4. ArrayList和LinkedList的区别
  5. 垃圾回收算法
  6. OSI七层模型
  7. 应用层的协议有哪些?
  8. 传输层有哪些协议?
    1. 哪些协议是基于tcp 哪些是基于udp?
    2. tcp和udp协议区别?还有呢?
    3. tcp如何保证消息可靠性?
  9. 设计一下发朋友圈测试用例?(功能 性能 兼容 ui 安全 易用性每个都盘了)
  10. 如果突然白屏了要怎么排查?
  11. 我看你以前投的都是后端 为什么选择了测开?
  12. 你觉得你做测开的优势在哪里?
  13. 做题:221 最大的正方形

顺丰-一面-9.6

23min

  1. 你这个项目的背景是什么?(尴尬 能有啥背景啊)
  2. 为什么使用redis?是什么需求让你一定要用它????
  3. 为什么使用kafka不使用rabbitmq?(输出一顿八股 面试官不太满意)
    1. 可以从业务的角度回答下吗?是什么功能让你在kafka和rabbitmq中选择了kafka?
  4. bitmap怎么用来统计DAV?为什么用bitmap?
  5. 做题

做饮料

准备材料 prepareReceipe()

准备水 prepareWater()

倒入杯中 pourInCup()

添加材料 addCondiments()

做 奶茶,咖啡,抹茶 用标准流程怎么实现

评价:为什么选择这些中间件要有自己的思考 不要为了使用而使用

美团-二面-9.7

50min

  1. 你这个项目是在什么背景下做的
  2. 你这个性能从12.5提升到180 为什么能提升这么多 你做了什么操作?
    1. 为什么之前的是12.5 为什么这么低?
    2. 你是在什么机器上跑的 自己电脑嘛 内核是多少?
    3. 如果你的电脑只开启一个SpringBoot程序 就只输出一个字符串 你觉得TPS能有多少
    4. 那你这个12.5对比来说为什么这么低。。。。。。
    5. 你能不能想办法从180提升到1800。。。
  3. SpringBoot如何识别你的请求是一个http请求的?
    1. (我回答SpringMVC的消息转换器?)你这是已经识别为http请求之后的动作?怎么识别呢?
  4. 你的帖子表结构是怎样的?
    1. 有没有用到什么索引?
    2. 会有慢查询的情况吗?
  5. 写SQL (好久没写了。。。)

img

  1. 做题 合并区间
  2. 能来实习嘛?能实习多久?
  3. 现在有没有别的offer?

字节-二面-9.8

测开60min

  1. 为什么选择测开?(os:因为后端不要我hh)
  2. 你觉得你项目的难点是什么?
    1. 为什么要用threadlocal?
  3. 点赞关注你怎么实现高性能的?
  4. 项目部署了嘛?计划怎么部署?
  5. 讲一下实验室项目?
    1. 审稿人为什么对你的idea认可呢?没有没什么衡量结果的标准?
  6. 线程和进程的区别
  7. 进程间的通信方式?
  8. 为什么要有用户态和内核态?
  9. 在浏览器上输入 url 地址后会发生什么?
  10. 讲一下索引 主键 事务?
    1. 什么情况下用索引不好?
  11. 讲一下数据库范式?
    1. 一定要遵循范式吗?
  12. 数据库什么情况下要读写分离?
  13. 面向对象的三大特征
  14. 健康码测试用例
  15. 抖音白屏怎么排查?
  16. 做题:两个list求相同元素
    1. 时间复杂度是多少?
    2. 还能优化吗?
    3. 对这段代码编写测试用例
    4. 如果是两个无限队列怎么办?
  17. 平时有什么兴趣爱好

用友-一面-7.28

(22min)(

八股

  1. 使用过什么框架,对Spring有什么理解?
  2. Spring的IOC思想是什么?实现了什么样的功能?如果让你简单写一个IOC的例子,你准备怎么办?
  3. Spring AOP概念是什么?动态代理如何理解?动态代理实现了一个什么样的目的,怎样达到动态代理?
  4. 面向接口/面向对象编程如何理解?
  5. 继承父类和实现接口有啥区别?为什么有父类后还要有接口?
  6. JVM的理解,它是用来干嘛的?JVM的内存如何划分的,大概说一下它的内存模型。

闲聊(感觉已经寄了)

  1. 你认定了后面要做Java开发工程师吗?你后面想要主要主攻抽象框架、算法方面;还是想做业务模块,软件这一方面?是更想跟进业务,做些产品出来吗?
  2. 那你对于未来的规划,毕业之后,几年内要达到一个什么样的水平?
  3. 工作中遇到需要用的新框架知识,很急,你完全不会,那你准备咋办?
  4. 那么目前你觉得自己首先得学习什么知识,或者得去补哪些知识?
  5. 如果你做了一段时间的软件开发后,你觉得自己是更适合做开发+管理类的工作还是选择深耕技术,做技术达人呢?
  6. 项目冲刺阶段,加班如何看待?
  7. 反问

锐捷网络-一面-8.11

软件测试工程师岗位

8.11上午面试(约30min)(说是过了,但是迟迟没有下一面

  1. 自我介绍后,面试官对我研究生期间做的几个项目比较感兴趣,聊了约15min。
  2. 关于SpringBoot论坛项目的提问:(6min左右) 消息队列,缓存如何使用的,如何用这些来提高系统性能?
    1. 有出现过数据库与缓存不一致问题吗?
    2. 项目有测试过吗?JMeter压力测试如何测试的?得到了什么样的结果?如何衡量你这个系统是稳定的?
    3. 做这个项目中遇到的最大的问题是什么?如何解决的?
  3. 后面就一些偏向于HR面的问题,聊关于自身情况,岗位,公司业务,团队方向等等方面的问题?
  4. 反问

锐捷网络-二面-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,面试官比较年轻,中途多次被我菜笑!?

  1. 自我介绍
  2. ThreadLocal类你了解吗?说说它的实现原理?
  3. 线程池使用过吗?
  4. CountDownLatch了解吗?
  5. HashMap的底层结构了解吗?聊聊
  6. HashMap的Key对变量类型有要求吗?
  7. 你对哪个方向比较了解?我们聊聊?面向对象面向过程的区别?
  8. C++和Java都是面向对象,这两者的区别?
  9. 计算机网络:TCP,UDP的区别?
  10. TCP如何保证连接的可靠的?
  11. TCP三次握手的流程,详细说说?
  12. 每次握手的请求都可能丢失,说说每次请求丢失后会发生什么?比如第一次请求就丢失了呢?
  13. 请求是如何重传的呢?
  14. 第一次没丢失,第二次响应SYN的时候丢失了呢?
  15. 3次握手维护的两个队列,了解吗?
  16. TCP拆包粘包了解吗?如何实现的?
  17. JVM了解多少?JVM内存结构是什么样的?哪块区域不会发生OOM
  18. GC算法了解吗?如何标记需要回收的对象?
  19. 你了解哪个垃圾回收器的实现?CMS的回收流程是什么样的?分为几个阶段?中间有几次STW时间?
  20. 数据库了解过哪些?MySQL的InnoDB索引的组织结构是什么样的?
  21. B+树的优势在哪?
  22. 设计表的时候主键是如何选择的?为什么主键是个自增变量?UUID也是唯一的?
  23. 聚簇索引和非聚簇索引的区别?回表查询是一定会执行的吗?(覆盖索引)
  24. MVCC了解吗?它里面包含哪些要素,由哪些组成的?
  25. 消息队列,Kafka是在什么条件下去用的?
  26. 用消息队列的好处是什么?Kafka为什么具有这么高的性能?它由哪些部分组成?
  27. Broker,Producer,Consumer他们三个是如何交互的?
  28. 消息会发给每个服务器吗?消费者哪消息是基于哪种模式(Push or Pull)?
  29. RPC了解吗?
  30. Redis的数据结构?有序集合的底层是什么结构?
  31. 跳表?跳表你了解吗?
  32. 数据结构:栈了解吗?如何用栈实现一个加减乘除四则运算的计算器?两个栈实现?或者说你知道后缀表达式吗?逆波兰表达式?
  33. 那我问问树方面的,huffman树了解吗,xxxx结点(没太听清)?
  34. 如何评判代码好坏?
  35. 写道题吧,口述下你的思路吧,两个公共字符串的最长公共子序列——lc1143,口述dp的状态转移方程?
  36. 反问,基础确实得巩固,今年行情也不好,面试大概10进1,更看重校招生的基础能力,除了Java以外,网络,数据结构,算法都很重要。

ThoughtWorks-一面-9.4

一小时,打开IDEA写了两个需求。

联影-一面(电话面)9.5

主要问了简历上的项目经历加一些八股。

阳光电源-一面(电话面)9.8

主要问了简历上的项目经历,疯狂劝我去迈瑞,迷惑。。。

中望软件-一面 9.13

体验较差,面试官左右四顾而言他,

华为-一面 9.14

大部分时间聊硕士期间做的项目,论文,专利。

  1. 为什么用Kafka做消息队列
  2. 微服务了解吗?
  3. 适配器设计模式了解吗?
  4. 听我说笔试就10x分,手撕了一道原创题,很简单,给了一段英文,统计其中出现频次最高的词并输出(IDEA写)。

富途-一面-9.14

项目:

  1. 介绍项目,帖子表,点赞表如何设计?项目中帖子中支持什么格式的数据,文本?超链接,图片支持吗?

八股:

  1. 快排,归并排序介绍,复杂度介绍,归并快排的差异
  2. TCP,UDP差异?
    1. 什么是报文?什么是字节流?
    2. TCP拥塞控制是在什么场景下出现的?
  3. 内存堆,内存栈的区别
  4. 进程线程区别
    1. 进程为什么执行开销大
    2. 用户态如何切换到内核态
  5. 散列表发生哈希冲突时,会发生什么?
    1. 开发地址探测法如何实施的?
    2. 如果让你设计一个Hash函数,输入64位整数,输出64位整数,如何设计

智力题:

  1. 7个篮子,每个篮子7个橙子,有一个篮子的橙子7两/个,其他篮子的橙子10两/个,有个电子称,现在只能称一次,如何找到7两/个的那个篮子?14
  2. 140g盐,现在有7g,2g砝码各一个,一个天平,如何操作三次,把研分为50g, 90g两份?

手撕

lc543 二叉树最大直径

华为-二面 9.21

主要都是在聊硕士期间做的项目,后面问了些java相关的问题

手撕lc1208

https://leetcode.cn/problems/get-equal-substrings-within-budget/

华为-主管面 9.26

主管面问些很开放发问题,结束后十分钟内出结果,泡池子了。

富途-一面-9.14

项目:

  1. 介绍项目,帖子表,点赞表如何设计?项目中帖子中支持什么格式的数据,文本?超链接,图片支持吗?

八股:

  1. 快排,归并排序介绍,复杂度介绍,归并快排的差异
  2. TCP,UDP差异?
    1. 什么是报文?什么是字节流?
    2. TCP拥塞控制是在什么场景下出现的?
  3. 内存堆,内存栈的区别
  4. 进程线程区别
    1. 进程为什么执行开销大
    2. 用户态如何切换到内核态
  5. 散列表发生哈希冲突时,会发生什么?
    1. 开发地址探测法如何实施的?
    2. 如果让你设计一个Hash函数,输入64位整数,输出64位整数,如何设计

智力题:

  1. 7个篮子,每个篮子7个橙子,有一个篮子的橙子7两/个,其他篮子的橙子10两/个,有个电子称,现在只能称一次,如何找到7两/个的那个篮子?14
  2. 140g盐,现在有7g,2g砝码各一个,一个天平,如何操作三次,把研分为50g, 90g两份?

手撕

lc543 二叉树最大直径

电信天翼云-一面-9.22

20220922 一面

  1. 介绍一下你所学的Java相关知识,

数据结构算法->Java语法->Java集合->数据库,Spring框架的使用->中间件学习与使用

数据结构与算法

  1. Java集合中那些数据结构是跟二叉树有关的?红黑树相比于链表的优点?
  2. 判断链表相交如何做?用快慢指针可以实现吗?
  3. 快排原理?冒泡排序原理?堆排序的原理?
  4. 回溯算法的原理?
  5. 动态规划算法的原理?
  6. 二分查找的原理?

计算机网络:

  1. 计算机网络中快速恢复算法是在什么场景下使用的
  2. 那拥塞避免算法和xxx(忘了)是用来干什么的?

操作系统:

  1. 内存碎片是如何产生的?

MySQL

  1. Mysql防止幻读的隔离级别是什么?
  2. 这几种隔离级别是为了应对什么问题,为什么这样设置的?

Java

  1. SpringBoot的热启动与热部署是什么?
  2. 垃圾回收算法介绍一下
  3. 给JVM的栈空间设置的比较大时,会发生什么?
  4. 项目中用到的常量一般是在JVM哪个区域分配的空间?

用友-一面-7.29

  1. 聊聊项目,使用的技术,Redis、Kafka、ES用在哪里,实现什么功能
  2. 前缀树实现,项目中ThreadLocal的使用
  3. 在线IDE项目中,动态编译是怎么实现的,ThreadLocal原理
  4. 线程池了解吗?
  5. 分布式事务有了解吗、TCC了解多少?
  6. Sychronized底层实现
  7. Spring的设计模式,SpringBoot启动原理
  8. 分布式框架SpringCloud、Dubbo的使用?
  9. RPC的基本原理
  10. 缓存击穿,数据库和缓存的一致性
  11. 机械臂强化学习项目介绍
  12. 算法比赛参与了哪些,聊聊排序,冒泡、快排、归并
  13. 唠嗑,聊聊写书的内容,元宇宙、NFT、VR
  14. 唠嗑,面试官说公司的系统基于React,分布式架构,很多中间件都是自研
  15. 反问1,加班情况,比大厂少,隔一天加一次班
  16. 反问2,公司租房,在海淀,位置比较偏,也有2000多的房子
  17. 反问3,公司ERP系统发展前景,比金蝶强,华为虽然也在做,但是还是没有我们30年的底蕴
  18. 评价:我觉得你接触的比较广,区块链、机械臂。。问题回答的还不错,但是缺乏具体业务的实践,我比较喜欢你比较学习的态度

用友-二面-8.3

  1. 聊聊自己最拿手的项目:Java IDE,聊的很深,20分钟,面试官是做JVM的
  2. 类加载机制,动态编译的具体过程
  3. 双亲委派机制,自己的类加载器如何实现,是否每次都要加载Java核心类库,如何实现
  4. 项目中ThreadLocal的使用,原理
  5. 获取Class对象的三种方式
  6. 反射这么方便,我们就不用new对象来写代码了,可以吗?不行,安全性考虑
  7. 动态代理和静态代理的基本原理,JDK和CgLib动态代理的区别
  8. 分布式事务特性,CAP、BASE等,Redis是CP还是AP,谈谈理解,我猜的CP
  9. MySQL8.0和5的区别,MySQL8在去除缓存后如何优化的?
  10. MyBatis的基本流程,设计模式,常用的关键字,表达式,#{},${}区别
  11. 用的什么IDE,快捷键哪些用的比较多
  12. Spring AOP、Ioc基本原理
  13. Kafka在牛客网项目中的作用
  14. 强化学习项目,和传统的机械臂控制的区别?稍微介绍了一下
  15. 闲聊1:两个算法比赛,负责什么部分,有哪些算法,什么平台,属于什么级别,绩点排名
  16. 闲聊2:学校做的东西和企业的区别
  17. 闲聊3:就业、读博规划打算
  18. 闲聊4:什么时候能来实习?不给实习
  19. 闲聊5:用友笔试难度怎么样?我觉得比较符合考生情况,贴合实际
  20. 反问1:北京和深圳怎么选?答:看地方看朋友看饮食天气,其他都差不多
  21. 反问2:一名优秀的程序员的特质?不同时期要求不一样,抗压能力、自学能力。。。说技术一两年大家都差不多,一个业务的积累需要六七年,精通业务比技术有时候更难
  22. 评价:现在很多面试的人懂的框架都特别多,但是懂底层的很少,我觉得你底层掌握的不错

用友-HR面-8.11

  1. 本科硕士都是和计算机相关,谈谈为何选这个专业
  2. 目前做过令你印象最深的一个项目,自己承担了什么角色
  3. 参加的算法比赛,介绍一下
  4. 对用友公司的了解
  5. 介绍一下国科大,你们院处于什么水平
  6. 如何提升自己的核心竞争力
  7. 职业规划选择,为何放弃读博
  8. 对工作城市的选择
  9. 目前遇到最大的挫折
  10. 为什么没有实习经历?考研,老板不给
  11. 高中有没有复读
  12. 大学有没有挂科
  13. 选择公司的时候最看重哪几点?
  14. 薪资要求,投递、面试情况,你是如何了解用友的薪资水平的?
  15. 反问1:周六加不加班?一般公司不要求加班,看部门
  16. 反问2:试用期几个月?试用期三个月,会有一次转正答辩,除非水平很差,应届生比较宽容,基本都会过
  17. 八月底给意向书,十月确定offer的合同薪水

顺丰-一面-9.9

自我介绍

项目

  1. JavaIDE担任了什么角色,运行流程,实现了什么模块
  2. 类加载流程
  3. ThreadLocal原理
  4. 牛客网部署了没有,如果上线,你要考虑什么问题
  5. 强化学习机械臂项目介绍一下,用的算法是你自己实现的吗

八股

  1. MySQL数据库量大,如何优化
  2. explain
  3. 横向、纵向分表,规则
  4. Redis的基本数据结构以及使用场景
  5. Redis缓存雪崩、缓存穿透、缓存击穿概念以及解决方法

反问

  1. 顺丰目前Java的业务有哪些?

答:基本都是Java,正在扩展大数据技术栈

  1. 顺丰业务面对的竞争对手

答:行业龙头,对自己的技术很有信心

  1. 试用期?是否要求强制提前实习

答:试用期三个月,是否强制实习问HR

顺丰-二面-9.18

  1. 类加载机制
  2. ThreadLocal原理,为什么要用弱引用
  3. 强、软、弱、虚引用,软引用的实际案例
  4. SpringBoot的@Controller的作用域有哪些
  5. Redis的部署方式,哨兵和集群哪种场景使用
  6. 项目有没有上线?问了三次
  7. JIT编译器、其中JDK1.8的JIT分层编译了解吗?
  8. RDB持久化的过程
  9. Redis在牛客网中的作用?点赞的实现
  10. 点赞持久化到数据库中了吗?数据库缓存的一致性以及解决方案
  11. 反问1:顺丰的业务和技术栈,SpringBoot、SpringCloud、ClickHouse等主流的技术栈,业务主要是快递运输、大数据分析
  12. 反问2:顺丰相比于货拉拉、满帮的优势?顺丰全能业务量大、后面大多是拉大件和搬家

蚂蚁-一面-9.20

50min

  1. 项目、比赛、学校问的都很仔细,比赛什么级别,金银铜牌分别多少个;问我本科是不是211,考研你们那一届情况怎么样;项目是不是实习项目?

项目

  1. 说一下这个项目从前端到后端的整个流程
  2. 为什么要用字符串改器修改符号引用
  3. System.out为什么是输出不安全,即使线程不安全,我也能得到自己的输出啊,我觉得没有问题,为什么要用ThreadLocal封装,封装了什么,前端展示界面也是System.out吗,你怎么封装的,放在前端展示?
  4. 问:为什么每次修改这个客户端的类,都得new 一个类加载器,如果不修改,每次都输入一样的,怎么判别呢?有什么改进空间?

答:加缓冲区,用来判断每次的输入是否相同

问:怎么判断是否相同?

答:通过编译后的字节码来判断是否相同(瞎说的)

问:如果输入的字符串太多,你怎么优化呢?

答:切割,做多线程处理

问:这个项目支持package吗?如果要对这个项目进行扩展,实现多个package,让项目变大,你如何优化?

答:双亲委派机制,鉴别安全。。。(瞎说)我不会了,哑口无言,沉默半分钟

基础

  1. ThreadLocal还用在其他什么地方
  2. 访问一个网站的所用的协议
  3. 进程之间通信的方式
  4. Http/Https,Https的流程,即使有了CA证书,是客服端保证服务端发来请求安全,那么服务端如何识别客服端发来的请求,保证安全
  5. static方法可以调用普通方法吗
  6. 抽象类的方法可以修饰吗
  7. 抽象类和接口的区别,使用场景,为什么要用抽象类和接口,有什么好处

反问1:蚂蚁的网商银行和微众银行一样是互联网银行吗?和普通的银行的区别?业务方向?

答:没有实体,只有杭州一个,然后说了一些银行业务等等,和微众银行对飚

反问2:技术栈,用的很多都是自研框架吗?答:是的,很多自研技术

反问3:新人培养方式?答:新人前三个月都是培训期,蚂蚁的新人培训非常用心

反问4:试用期?答:3个月

电信天翼云-一面-9.20

两个面试官连着问的(30min)

  1. 研究方向,做的什么,详细说一下,创新点在哪
  2. 为了方便传输,如何将一个四字节的字段变成一字节的???
  3. 在64位系统中,int类型在java中如何存储的,所占空间有多大
  4. 类加载机制
  5. 软中断和硬中断
  6. 常用的Linux命令,top、df -h、free、ps
  7. 翻转链表的两种思路、时间、空间复杂度
  8. 自己实现一个简单的C/S系统
  9. 三次握手、四次挥手
  10. Redis缓存穿透、击穿、雪崩的解决方案
  11. 数据库的隔离级别以及如何实现数据库的隔离级别
  12. 如何优化数据库、explain
  13. 口述了一段代码,用一个类有一个sychonized方法,两个线程是交替执行还是并行,什么时候会死锁
  14. 反问1:天翼云的业务方向?和腾讯云、阿里云差不多,进去后会分配,不一定是后端
  15. 反问2:加不加班,和互联网公司有什么区别?HR面告诉你

电信天翼云-HR面-9.27

  1. 详细介绍你的研究生课题项目,反问一堆
  2. 你剩下两个项目都是开源的吧?是的
  3. 本科研究生有没有挂过科?
  4. 本科成绩前10%,为什么没有保研?
  5. 为什么会考虑Java开发方向,而不是你的课题方向?我说今年就业情况不好,他们都笑了
  6. 学习Java的方式
  7. 最近读过的技术书籍
  8. 目前有哪些offer
  9. 期望薪资?
  10. 反问1:深圳和上海的业务有哪些不同呢?

答:上海市本部,而深圳只有数据库业务,以后还会增加

  1. 反问2:试用期和新人培养流程

答:试用期六个月,有配导师,有三年的培训周期???

荣耀-一面-9.26

30min

  1. 有没有获取过奖学金?本科专业?
  2. 点赞如何实现,项目中哪里用到redis
  3. 一级缓存如何跟二级缓存保持一致
  4. 缓存和数据库的一致性方案
  5. 设计模式了解哪些?说一下双重校验的单例模式如何
  6. SpringBoot的启动流程,如何完成bean的注入
  7. 在高并发下,是用CPU密集型还是IO密集型?在面试官的提示下,是IO
  8. HashMap的数据结构,put流程
  9. Java异常分类,Error异常如何捕获
  10. 分布式事务原理
  11. SpringCloud了解吗?注册中心在单机的情况下,如果挂了,是否能获取服务?短时间可以?说了不会了,还是问
  12. 算法题:

剑指 Offer 48. 最长不含重复字符的子字符串

荣耀-主管面-9.29

20min,面试官一直在笑

  1. 参加过什么志愿者活动
  2. 有过支教活动吗
  3. 自己喜欢什么运动
  4. 自己从学习这两个java项目中有了什么体会
  5. 强化学习的项目介绍一下,目前是理论还是落地了
  6. 加班能接受了,怎么看待加班
  7. 先进院是考的还是保的,为什么会选择深圳
  8. 为什么会选择荣耀
  9. 反问1:什么时候签合同?答:三周后
  10. 反问2:荣耀业务?1.手机云服务 2. 类似淘宝系统,将货卖给渠道商,也包括维修手机部件的信息(主管自己的部门) 3. 安卓

百度-一面-7.22 (凉经)

  1. 社区项目:数据表怎么设计的?(好久没复习了没答上来)
  2. 实习干了什么?

八股文

  1. 输入URL地址过程:
  2. DNS详细过程
  3. ARP协议详细过程(IP地址怎么找到MAC地址)
  4. TCP,三次握手
  5. TCP和UDP区别
  6. Http协议:http1.1/http2/http3
  7. UDP怎么实现可靠传输
  8. 状态码
  9. http和https区别
  10. 操作系统:进程和线程的区别
  11. 栈和堆的区别

数据库

  1. 日志:binlog,redolog在事务提交前还是提交后写入?
  2. 事务相关
  3. 笔试题:字符串转整数(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的区别是什么?