前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字节跳动面试题

字节跳动面试题

作者头像
一个会写诗的程序员
发布2020-05-18 15:20:33
1.3K0
发布2020-05-18 15:20:33
举报

字节跳动面试题

历经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 其他部分
  • 高并发系统的限流如何实现?
  • 高并发秒杀系统的设计
  • 负载均衡如何设计?
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字节跳动面试题
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档