- 为什么使用使用双亲委派
- Redis用途
- 服务注册过程
- JIT优化是哪个阶段执行
- 字节码第一个单词是什么
- Java的跨平台怎么实现
- 虚拟机使用什么语言实现
- OOP Klass内存模型
- 对象头、对齐填充
- monitor_enter monitor_exit在所有synchronized上都有吗
- 如何保证本地缓存不丢失,怎么保证写过程不丢失
- 本地缓存与分布式缓存区别
- 保证缓存和数据库的最终一致性
- linux IO模型
- 单线程都是排队执行的吗
- Redis线程模型
- 什么是脑裂
- 哨兵模式选主流程是怎么样的
- RedLock是什么模式
- 跳表的插入过程
- ZSet底层怎么实现的
- SDS有什么优点和特性
- Redis存字符串为什么使用SDS
- Redis支持那些数据结构
- 分布式Session,为什么用Redis
- TCP粘包、丢包怎么解决
- 线程池的容量怎么配置
- as-if-serial语义
- synchronized可以禁止指令重排吗
- synchronized锁优化
- synchronized原子性、可见性、有序性
- 跳表的实现方式
- 什么是跳表
- LongAdder适合什么场景
- LongAdder的结果是一定准确的吗
- LongAdder能替换掉AtomicInt
- countDownLacth、Semaphore、CyclicBarrier区别和联系
- AQS会加锁吗
- countDownLatch机制,怎么保证线程安全
- 超时时间到了,任务还没执行该怎么解决
- uuid如何保证不重复
- 锁释放失败了怎么办
- 分布式锁的实现方式
- 怎么解决锁竞争失败导致业务失败的问题
- MQ的顺序性
- 时间转换怎么做
- beanuitls是深拷贝还是浅拷贝
- 对象的属性拷贝怎么做
- 反射是怎么破坏单例
- 单例模式被破坏的场景
- 模板方法有什么不好的地方
- 缓存预热该怎么做
- guava和本地缓存和hashmap实现的本地缓存区别
- hashmap内存溢出问题
- 多级缓存是什么
- 什么场景使用Redis缓存
- netty零拷贝,以及那些框架使用了零拷贝
- netty线程模型
- 死信队列是什么
- 延时队列是如何实现
- 文件转换的异常处理怎么做
- 前端上传的Excel转成csv,数据校验
- Easyexcel和POI性能比较
- CSV文件如何生成
- b树,b 树的概念和区别
- 网络的七层结构
- 分布式服务治理
- 负载均衡算法实现
- 缓存穿透,怎么解决
- hashmap源码,为什么8个节点变成红黑树又为什么到6个节点才恢复为链表
- synchronized和lock的区别,哪个更好?怎么选择?
- 并发量很大,服务器宕机。你会怎么做
- CurrentHashMap理解
- cms算法的缺点
- 标记清除算法的过程,标记清除算法如何给对象分配内存空间
- gc root选择
- 四次挥手
- ThreadLocal的实现,原理,业务用来做什么
- Spring DI的原理
- 线程池核心参数
- synchronized机制
- zookeeper主节点故障,如何重新选举
- zookeeper选举机制
- zookeeper节点类型
- redis持久化策略
- mysql索引结构
- HashMap底层原理
- 用Java解析XML的方式
- Linux怎么查看磁盘使用情况
- Linux怎么查看内存使用情况
- 红黑树的自动转换
- 红黑树的实现
- JWT的算法
- Mybatis取参数的方式,以及他们之间的区别
- CAS的实现类
- SpringSecurity的实现过程
- RabbmitMQ实现原理
- 为什么1.8引入LocalDateTime
- String、StringBuilder、StringBuffer底层是什么
- Session的实现原理
- 分布式Session实现
- Collections.sort方法使用的是哪种排序方法