字节跳动一面 — Java后端开发
1h面试 20min算法
自我介绍
主持的项目的设计
Redis:
穿透,雪崩,击穿,为什么使用布隆过滤器与bitmap,上亿级查询不同数据的怎么处理(这些数据都不在Redis缓存里)
RabbitMQ:
RabbitMQ有多少种模式?
JVM:
垃圾回收机制,JVM启动步骤,如果修改JVM参数需要重启生效吗?
在实践中,如何正确使用对象来减少垃圾回收造成的资源浪费?
Java与MySQL:
MySQL的最大连接数知道吗?如果超出了怎么办,会发生什么?
MySQL5.5、MySQL5.6、MySQL5.7:默认的最大连接数都是151,上限为:100000
Synchorinized锁与ReentrantLock
Spring Boot的特性?
Java反射?
Java 迭代器用过吗?
Java 全局错误处理怎么做?
HashMap与ConcurrentHashMap的底层实现?
HashMap与ConcurrentHashMap,是否是线程安全,Redis是不是线程安全?
计算机网络:
7层结构是哪些?Http和TCP在哪层?
TCP3次握手?
算法:
最长回文串变体,给一个字符串,可以使用里面所有字符,在一次循环的限制下,找到并返回一个最长回文串
字节跳动二面 — Java后端开发
36min面试 24min算法
自我介绍
说说项目
Redis:
这个项目用Redis做了什么,
Redis数据结构有哪些
zset底层数据结构?
跳表如何插入一个值?
Rabbitmq:
Rabbitmq有多少种模式?
如何做到保证数据可靠性
Mysql:
mysql 为什么索引为什么用b+树
b+树除了高低小查询快,还有什么好处?
什么是聚集索引,什么是非聚集索引
Java:
hashMap 底层数据结构
为什么用红黑树
红黑树是平衡树吗?
如何保证hashMap线程安全?
聊聊:syn锁与ReentrantLock与volatile
操作系统:
聊聊虚拟内存,为什么要虚拟内存
计算机网络:
为什么网络要分层?
算法:
反转链表变体
给定一个链表头节点,和一个left 和right 反转left和right之间的值。