Java基础
- 重载与重写的区别:
重载在同一个类中,方法名必须相同,参数类型、个数、顺序可不同,返回值和访问修饰符可以不同,重写在父子类中 - String 和 StringBuffer、StringBuilder 的区别是什么?String 为什么是不可变的
String类使用final关键字字符数组,所以是不可变的
StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,String和StringBuffer是线程安全,StringBuilder线程不安全,String类型每次改变都会产生一个新对象,StringBuffer是对对象本身操作,StringBuilder性能优于String和StringBuffer。 - == 与 equals的区别
- final 关键字
- Java 异常处理
- 接口和抽象类的区别
集合
- Arraylist 与 LinkedList 异同
- ArrayList 与 Vector 区别
- HashMap的底层实现
- HashMap 的长度为什么是2的幂次方
- HashSet 和 HashMap 区别
- ConcurrentHashMap 和 Hashtable 的区别
- ConcurrentHashMap线程安全的具体实现方式/底层具体实现
多线程
- synchronized 关键字
- synchronized和ReenTrantLock 的区别
- synchronized 关键字和 volatile 关键字的区别
- 实现Runnable接口和Callable接口的区别
- 线程池有关
- AQS原理
- CAS
- ThreadLocal作用
锁
- 乐观锁 悲观锁
- 偏向锁、轻量锁、重量锁
JVM
I/O
spring
mybatis
数据库
- MyISAM与InnoDB的区别
- 索引
- sql优化
- 事务的四个特性与隔离级别
- 数据库锁
网络编程
数据结构与算法
redis
- 常见数据结构与使用场景
- 缓存雪崩和穿透解决方案
- key的并发竞争
- 缓存与数据库双写数据一致性