自我介绍   手撕算法(统计每个字符的次数)   java集合类   List和Set的区别   HashMap的key为什么要用不可变的对象   线程五种状态及转换   synchronized介绍   为什么synchronized是重量级锁(不会)   JVM运行时数据区及各自功能   HashMap是否线程安全   HashMap有哪些线程不安全的场景   头插法为什么会导致死循环的问题(不会)   Spring有哪些组件   AOP原理   Spring设计模式(提到了单例设计模式)   手写一种单例模式