字节跳动Java岗4面面经分享:JVM+索引+Redis +手撕算法+CAS

200 阅读1分钟

字节跳动一面:

  • JVM的组成;

  • 多态的实现;

  • 内部类为何可以访问外部类对象的属性及方法;

  • HashMap的源码Redis dictht源码分析、存放数据时发现正在扩容会怎么样:

  • 如何判断SQL语句用到了哪些锁;

  • MySQL索引的类型;

  • Redis V.S. Memcached;

  • MySQL主从复制的方式,

  • CAS原理、含义、底层实现、存在的问题;

  • 项目相关问题;

  • 手撕算法:变形的二分查找。

字节跳动二面:

  • B树什么时候的高度会变高;

  • 数据库隔离级别、索引、RR隔离级别下的SQL查询结果;

  • 多进程与多线程模式的区别;

  • 守护进程、僵尸进程、 孤儿进程,如何创建守护进程;

  • 一次HTTP请求涉及的网络协议及全过程;

  • 手撕算法:系统用户在线峰值及持续时间统计。

字节跳动三面:

  • Java存在内存溢出的现象吗,内存的分配方式、GC机制;

  • final、finally fialize 的区别与用法;

  • 设计模式之单例模式;

  • Java的反射、含义、使用、底层实现;

  • 悲观锁、乐观锁在数据库、Java中的实现;

  • TCP拥塞控制原理;

  • time-wait连接过多的原理如何解决;

  • 手撕算法:子串匹配问题。

字节跳动四面:

  • 项目介绍;

  • 请介绍一下你了解的源码;

  • 手撕算法:三面手撕算法变形(未能想出最优解,还是太菜了) ;

  • 系统设计。

关注微信公众号【编程技匠】