1. 请你介绍一下HashMap
HashMap是Java中一个基于key-value的键值对象,它的底层实现是数组+链表+红黑树,HashMap允许键或值为空,HashMap的线程是不安全的,因为它的底层操作方法没有加锁。
2. Sychronized与Lock之间有什么区别?
Sychronized与Lock都可以实现锁,Sychronized能够自动加锁和解锁,Lock则需要我们手动调用相关方法进行加锁和解锁。
3. SpringBoot有什么优点?
- 开箱即用,无需过多配置。
- 无须外部容器即可运行。
- 对于其他组件有着很好的支持。
- 能够天然集成微服务。
4. SpringBoot中如何实现异常处理?
在SpringBoot实现全局异常处理可以通过@ControllerAdvice
与@ExceptionHandler
注解,我们通过实现一个异常处理类,然后在这个类上用@ControllerAdvice
注解标识这个类用于实现异常处理,然后在需要进行异常处理的方法上标注@ExceptionHandler
注解。
5. 谈谈SpringBoot的自动配置原理
SpringBoot的自动配置,主要是因为在@SpringBootApplication
注解的底层,使用@EnableAutoConfiguration
注解开启了SpringBoot的自动配置,然后还引入了AutoConfiurationImportSelector,它用于加载和过滤相关配置类。