字节大数据基础架构部门

字节面经 一面 2.17

  1. 自我介绍
  2. 接口和抽象类的区别
  3. 了解过啥设计模式
  4. 单例模式是啥
  5. 工厂模式的作用,为什么要用工厂模式? 解耦, 把对象的创建和使用的过程分开(就是Class A 想调用Class B,那么只是调用B的方法,而至于B的实例化,就交给工厂类)
  6. 建造者模式的实现方式
  7. 在设计模式中你使用抽象类还是接口比较多
  8. 了解哪些Java锁
  9. 死锁的必要条件
  10. Mysql索引了解吗(那时候不会就直接说不会了)
  11. MySql事务隔离级别
  12. 说一下你用过的Java框架 (说了Spring 的 ioc/aop 还没说aop就下一问了)
  13. 项目中如何使用git和maven的 代码题:
    1. 写一个快排 1. 快排是否稳定 2. 什么情况下会退化 3. 如何优化 4. 时间复杂度
    2. 写一个二分查找 1. 复杂度 代码题写的太快了, 然后他说时间还没到在问几个问题
  14. 了解分布式吗(NO)
  15. 说一下Java基础类型
  16. 为什么int是2的31次方
  17. 了解Docker吗(NO)
  18. 什么是Java同步和异步

反问: 1. 部门的业务 2. 对我的评价

字节跳动二面 2.18

  1. 进程之间的通信
  2. 管道通信
  3. 命名管道通信
  4. 消息队列
  5. 共享内存
  6. 信号量
  7. 套接字
  8. 信号
  9. 说一下你了解的锁
  10. 说一下synchronized 和 reentranlock
  11. 介绍一下Reentrantlock
  12. 单例模式中变量前加的关键字(volatile)
  13. 单例模式并发下实现方式
  14. 双重检查锁(DCL)
  15. 内部类
  16. 枚举类
  17. volatile的作用是什么
  18. 防止 JVM 的指令重排 ,还有一个重要的作用就是保证变量的可见性
  19. 会主动刷新存储
  20. 聚集索引和非聚集索引的区别 1.聚集索引即索引结构和数据一起存放的索引。主键索引属于聚集索引。** 2.非聚集索引即索引结构和数据分开存放的索引。二级索引属于非聚集索引**
  21. mysql三大范式说一个你了解的
  22. mysql的ACID是什么
  23. Maven包冲突怎么解决
  24. 介绍一下HashMap
  25. HashMap扩容了解吗?说一下扩容因子(loadFactor)
  26. 红黑树的特点, 为啥红黑树比较二叉树快
  • 每条路上黑节点的数量是固定的, 高度限制搜索快
  • 红黑树特点 :
  1. 每个节点非红即黑;
  2. 根节点总是黑色的;
  3. 每个叶子节点都是黑色的空节点(NIL节点);
  4. 如果节点是红色的,则它的子节点必须是黑色的(反之不一定);
  5. 从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即相同的黑色高度)。
  6. Redis为什么快? 直接操作内存 单线程没有多线程创建销毁的开销 IO多路复用
  7. Redis缓存机制(我觉得应该是处理流程) 算法题: LeetCode 25 困难 K个一组反转链表改版(最后n个不足也反转)

字节面经 三面Leader面 - 2.21(挂)

  1. Object类里有什么方法
  2. 有用过Object类中相关锁的方法吗
  3. wait
  4. notify
  5. notifyAll
  6. Java垃圾回收的方法新生代和老年代的不同的算法
  7. 设计模式中有用到锁的模式
  8. 如果没有使用两个锁单例会有什么问题
  9. MySQL使用还是对他的原理有什么了解
  10. 使用JavaEE开发过一些项目吗
  11. 在开发项目中有什么问题吗, 然后最后解决了的 算法题: LeetCode 101简单
    1. 对称二叉树 还是题刷的不够多,没写到这题也没多写二叉树,我居然用BFS写的