2020年字节跳动面试题

字节跳动一面面试题:

  • 自我介绍
  • 聊聊项目,时间大概15种左右,面试官会根据项目的一些设计点来提问,提前做好准备,别自己坑了自己
  • 分布式锁是锁住一部分还是整个系统,既然是锁住整个,为什么不用消息队列?
  • 详细讲下怎么用 mq 实现的最终一致性,还有怎么利用的消息事务?
  • tcp 于 http 的关系,如何基于 tcp 实现 http
  • Java 打开一个 http 流不关闭的后果
  • io 流是基于抽象类还是接口实现的
  • 数据库的乐观锁和悲观锁是什么
  • 乐观锁实现原理,讲到一半,来写一个乐观锁吧
  • java 的类中有什么方法
  • 线程安全是什么?
  • volatile 和 synchorized 的区别
  • 假如有一个类 A 和一个 类 B,这两个类都有一个变量和一个自增操作,A 类的变量用 volatile 修饰,B 类没有用,B 类的自增操作用 synchorized 修饰,他们都是线程安全的吗,如果都是,那为什么要用 synchorized ,volatile 不是更轻量吗,synchorized 有什么作用。
  • 智力题:岛上有群人,各自戴着红帽子或者白帽子,但都不知道自己帽子颜色,只有知道自己帽子颜色,第二天才能出岛,这时候有个人进来说了句“你们之中至少有一个人戴了顶红帽子”,问岛上的人最后的离开情况
  • 算法:矩阵中的最长上升序列

字节跳动二面面试题:

  • 自我介绍
  • 项目介绍
  • java集合框架全部介绍,从list set queue到map
  • hashmap底层扩容线程安全问题
  • 如果一个对象 要作为hashmap的key需要做什么?
  • Threadlocal类以及内存泄漏
  • 线程同步方式,具体每一个怎么做的
  • jvm类加载双亲委派模式,有没有能破坏这个模式的方法?类加载整个过程解释
  • 垃圾回收算法,垃圾回收器有什么?
  • synchronized用在静态和非静态方法的区别
  • 你做项目的思路是什么,看过什么源码,什么开源网站经常访间,看是什么学的的书不?

字节跳动三面面试题:

  • 问项目相关的技术栈
  • 怼问:为什么要用MongoDB?为什么不用MySQL?MongoDB有哪些特性,能说一下吗?
  • 文档型数据库有哪些?ES与MongoDB有什么区别?为什么ES搜索更快?
  • 数据库都有哪些类型,关系型数据库和NoSQL有什么区别?
  • NoSQL有哪些?他们的使用场景都说一下
  • 问JVM,类加载到卸载的过程都说一下
  • UML都有哪些图?如何从这些UML的图中来实现你的需求设计?
  • 设计模式说一下,Spring源码看过吧?那说一下设计模式是如何在Spring中体现的?
  • Spring为什么要用简单工厂模式?
  • 微服务了解过吧(了解过一点),微服务都有什么好处?
  • 微服务都有哪些框架或中间件?
  • SpringCloud都有哪些组件啊?和阿里开源的这些有什么不同呢?如果要你用你该如何选择?
  • SOA了解过吧?那什么是SOA?SOA与微服务相比有什么优缺点?
  • 如果让你提高一个系统,你该怎么做?如果让你设计一个系统,你要考虑哪些方面?
  • 对什么技术比较熟悉(回答的Java多线程),JDK提供了什么来实现线程安全啊?
  • 超线程是什么?知道吗?
  • 对未来的技术有什么规划?你为什么要学这些技术?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章