1、volatile和synchronized的对比
今天面试遇到了,没答出来;volatile关键字是线程同步的轻量级实现,所以volatile性能要比synchronized好;但volatile只能用于变量,而synchronized可以修饰方法和代码块;
多线程访问volatile关键字不会发生阻塞,而synchronized可能会发生阻塞;
volatile能保证数据的可见性,但不能保证数据的原子性;而synchronized都保证;
volatile主要用于解决变量在多个线程之间的可见性,而synchronized主要保证多个线程访问资源的同步性;
2、克隆
浅克隆:被复制对象的所有变量都含有与原来对象相同的值;而所有的对其他对象仍然指向原来的对象。换言之,浅克隆仅仅复制所考虑的对象,不会复制它引用的对象;
深克隆:引用对象的变量将指向被复制过来的新对象;
过程:实现cloneable接口,调用clone;深克隆引用的对象的类也要实现接口,并且也要进行浅克隆
3、什么是springboot
是为了解决spring缺点,主要简化了使用spring的难度,节省了繁重的配置,开发者能快速上手;核心功能是起步依赖和自动配置;
优点:内嵌服务容器;自动配置;简化配置;独立运行;通过注解实现