字节跳动面试题

作者: 光剑书架上的书 | 来源:发表于2020-05-09 02:15 被阅读0次

字节跳动面试题

历经4面,“跳进”字节跳动

字节跳动一面:

  • 自我介绍
  • tcp和udp区别,应用场景
  • tcp三次握手,为什么有第三次?
  • 讲一下get和post区别,其他命令
  • 讲一下进程和线程区别,什么时候用多线程?怎么保证线程安全?
  • synchronized的使用,是对什么加锁?
  • 栈和队列,怎么用栈实现队列?
  • 垃圾回收算法,复制算法中存活对象太多怎么办?
  • 可达性分析,GC Root可以是哪些对象?
  • hashmap底层实现,put get过程,扩容,为什么容量为2的倍数?
  • java基本类型,基本类型间的转换(short+int得到int类型,不能直接把int型赋给short型)
  • String类,字符串相加+的底层操作,StringBuilder和StringBuffer
  • 算法:给一个数组,使数组奇数在前半段,偶数在后半段,在原数组上操作。
    字节跳动二面:
  • 多个项目的技术架构,不是业务架构 MySQL,Redis,Nginx,Kafka这些技术架构
  • 项目技术点,学到了哪些?也要具体知识点。
  • MySQL中为什么是最左前缀?
  • 有没有接触过一些自动熔断工具
  • 502可能的原因有哪些?
  • 线上问题怎么排查?Full GC频繁怎么办?
  • 服务的QPS,数据库的架构和版本。
  • SpringBoot的优缺点分析
  • SpringBoot的启动源码分析
  • 服务的部署方式?
  • 算法题目:按照之字形分层遍历二叉树,要求bug free,并且构造二叉树进行测试。
    字节跳动三面:
  • jdk8默认的垃圾回收器, 知道哪些垃圾回收器? G1详细说一下
  • synchronized关键字的底层是什么?
  • 线程之间哪些资源是共享的? 什么是独享的?
  • 堆和栈有什么区别?
  • linux查看资源的命令?怎么样查看哪些端口被占用了
  • linux内存中swap是什么? 什么用?
  • 用户态和内核态的区别? 为什么要有用户态内核态区别?
  • 中断有哪些类型,区别?
  • 死锁概念?条件?
  • 算法题:奇数位递增偶数位递减的数组,排序
  • get,post区别?
  • get可以缓存?在INTP(?没听懂在哪)里是怎么实现的?
  • 写sql,group by的查询?
  • mySQL的搜索引擎?innodb和myISAM的区别
    HRBP面:
  • 自我介绍
  • 为什么在看机会呢?在看什么类型的机会呢?
  • 为什么看头条的机会?
  • 你觉得头条是一家什么样的公司?
  • 朋友同事如何评价你?
  • 平时都有哪些兴趣爱好呢?
  • 在原公司最享受的阶段是什么时候?为什么
  • 你对我们的业务方向了解吗?
  • 你对我们的业务方向和技术感兴趣吗?

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 其他部分
  • 高并发系统的限流如何实现?
  • 高并发秒杀系统的设计
  • 负载均衡如何设计?

相关文章

网友评论

    本文标题:字节跳动面试题

    本文链接:https://www.haomeiwen.com/subject/vgncnhtx.html