字节跳动面试题

01 Zookeeper 部分

* CAP定理
* ZAB协议
* leader选举算法和流程
02 Redis 部分

* Redis的应用场景
* Redis支持的数据类型(必考)
* zset跳表的数据结构(必考)
* Redis的数据过期策略(必考)
* Redis的LRU过期策略的具体实现
* 如何解决Redis缓存雪崩,缓存穿透问题
* Redis的持久化机制(必考)
* Redis的管道pipeline
03 Mysql 部分

* 事务的基本要素
* 事务隔离级别
* 如何解决事务的并发问题(脏读,幻读)?
* MVCC多版本并发控制?
* binlog,redolog,undolog都是什么,起什么作用?
* InnoDB的行锁/表锁?
* myisam和innodb的区别,什么时候选择myisam?
* 为什么选择B+树作为索引结构?
* 索引B+树的叶子节点都可以存哪些东西?
* 查询在什么时候不走(预期中的)索引?
* sql如何优化?
* explain是如何解析sql的?
* order by原理
04 JVM 部分

* 运行时数据区域(内存模型)
* 垃圾回收机制
* 垃圾回收算法
* Minor GC和Full GC触发条件
* GC中Stop the world
* 各垃圾回收器的特点及区别
* 双亲委派模型
* JDBC和双亲委派模型关系
05 Java 基础部分

* HashMap和ConcurrentHashMap区别
* ConcurrentHashMap的数据结构
* 高并发HashMap的环是如何产生的?
* volatile作用
* Atomic类如何保证原子性(CAS操作)
* synchronized和Lock的区别
* 为什么要使用线程池?
* 核心线程池ThreadPoolExecutor的参数
* ThreadPoolExecutor的工作流程
* 如何控制线程池线程的优先级
* 线程之间如何通信
* Boolean占几个字节
* jdk1.8/jdk1.7都分别新增了哪些特性?
* Exception和Error
06 Spring 部分

* Spring的IOC/AOP的实现
* 动态代理的实现方式
* Spring如何解决循环依赖(三级缓存)
* Spring的后置处理器
* Spring的@Transactional如何实现的?
* Spring的事务传播级别
* BeanFactory和ApplicationContext的联系和区别
07 其他部分

* 高并发系统的限流如何实现?
* 高并发秒杀系统的设计
* 负载均衡如何设计?

技术
©2019-2020 Toolsou All rights reserved,
JVM内存模型(面试自用)2021年2月中国编程语言排行榜【操作系统----Linux】常用杀毒软件详解ubuntu14.04如何设置静态IP排序(一)冒泡排序法JS 的骚操作漫画 | CPU战争40年,真正的王者终于现身!python中解决字典写入列表的问题C语言控制台小游戏,打砖块SpringBoot实践(五):mybatis-plus中的BaseMapper,Iservice和ServiceImpl