stringbuffer和stringbuilder的区别String类型为什么是不可变的深拷贝和浅拷贝Object常用的方法为什么要重写HashCode介绍HashMap为什么HashMap扩容是二的次幂介绍ArrayListArrayList和LinkedList的区别介绍一下反射说一下类加载器双亲委派模型能不能打破双亲委派模型spring的循环依赖介绍一下索引redis实现分布式锁为什么一个项目用setnx一个项目用redisson为什么使用jwt如果jwt过期了怎么办描述一下项目项目的技术上棘手的地方