头条抖音java面试题

一面

  • hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
  • Linux的共享内存如何实现,大概说了一下。
  • socket网络编程,说一下TCP的三次握手和四次挥手
  • 同步IO和异步IO的区别?
  • Java GC机制?GC Roots有哪些?
  • 红黑树讲一下,五个特性,插入删除操作,时间复杂度?
  • 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少

二面

  • 自我介绍,主要讲讲做了什么和擅长什么
  • 设计模式了解哪些?
  • AtomicInteger怎么实现原子修改的?
  • ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
  • redis数据结构?
  • redis数据淘汰机制?

三面(约五十分钟)

  • mysql实现事务的原理(MVCC)
  • MySQL数据主从同步是如何实现的?
  • MySQL索引的实现,innodb的索引,b+树索引是怎么实现的,为什么用b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
  • 如果Redis有1亿个key,使用keys命令是否会影响线上服务?
  • Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么?
  • 遇到最大困难是什么?怎么克服?
  • 未来的规划是什么?
  • 你想问我什么?