字节大数据基础架构部门
字节面经 一面 2.17
- 自我介绍
- 接口和抽象类的区别
- 了解过啥设计模式
- 单例模式是啥
- 工厂模式的作用,为什么要用工厂模式? 解耦, 把对象的创建和使用的过程分开(就是Class A 想调用Class B,那么只是调用B的方法,而至于B的实例化,就交给工厂类)
- 建造者模式的实现方式
- 在设计模式中你使用抽象类还是接口比较多
- 了解哪些Java锁
- 死锁的必要条件
- Mysql索引了解吗(那时候不会就直接说不会了)
- MySql事务隔离级别
- 说一下你用过的Java框架 (说了Spring 的 ioc/aop 还没说aop就下一问了)
- 项目中如何使用git和maven的
代码题:
- 写一个快排 1. 快排是否稳定 2. 什么情况下会退化 3. 如何优化 4. 时间复杂度
- 写一个二分查找 1. 复杂度 代码题写的太快了, 然后他说时间还没到在问几个问题
- 了解分布式吗(NO)
- 说一下Java基础类型
- 为什么int是2的31次方
- 了解Docker吗(NO)
- 什么是Java同步和异步
反问: 1. 部门的业务 2. 对我的评价
字节跳动二面 2.18
- 进程之间的通信
- 管道通信
- 命名管道通信
- 消息队列
- 共享内存
- 信号量
- 套接字
- 信号
- 说一下你了解的锁
- 说一下synchronized 和 reentranlock
- 介绍一下Reentrantlock
- 单例模式中变量前加的关键字(volatile)
- 单例模式并发下实现方式
- 双重检查锁(DCL)
- 内部类
- 枚举类
- volatile的作用是什么
- 防止 JVM 的指令重排 ,还有一个重要的作用就是保证变量的可见性
- 会主动刷新存储
- 聚集索引和非聚集索引的区别 1.聚集索引即索引结构和数据一起存放的索引。主键索引属于聚集索引。** 2.非聚集索引即索引结构和数据分开存放的索引。二级索引属于非聚集索引**
- mysql三大范式说一个你了解的
- mysql的ACID是什么
- Maven包冲突怎么解决
- 介绍一下HashMap
- HashMap扩容了解吗?说一下扩容因子(loadFactor)
- 红黑树的特点, 为啥红黑树比较二叉树快
- 每条路上黑节点的数量是固定的, 高度限制搜索快
- 红黑树特点 :
- 每个节点非红即黑;
- 根节点总是黑色的;
- 每个叶子节点都是黑色的空节点(NIL节点);
- 如果节点是红色的,则它的子节点必须是黑色的(反之不一定);
- 从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即相同的黑色高度)。
- Redis为什么快? 直接操作内存 单线程没有多线程创建销毁的开销 IO多路复用
- Redis缓存机制(我觉得应该是处理流程) 算法题: LeetCode 25 困难 K个一组反转链表改版(最后n个不足也反转)
字节面经 三面Leader面 - 2.21(挂)
- Object类里有什么方法
- 有用过Object类中相关锁的方法吗
- wait
- notify
- notifyAll
- Java垃圾回收的方法新生代和老年代的不同的算法
- 设计模式中有用到锁的模式
- 如果没有使用两个锁单例会有什么问题
- MySQL使用还是对他的原理有什么了解
- 使用JavaEE开发过一些项目吗
- 在开发项目中有什么问题吗, 然后最后解决了的
算法题:
LeetCode 101简单
- 对称二叉树 还是题刷的不够多,没写到这题也没多写二叉树,我居然用BFS写的