1.volatile关键字的应用
原理:线程共享变量,处理器内存(副本内存)和系统内存(主内存)同步刷新,
优缺点:可以保证线程之间的可见性,不能保证原子性;
2.synchronized关键字的应用
原理:无所状态,偏向锁,轻量级锁,重量级锁,只能升级不能降级
优缺点:可以保证原子性,性能差于volatile
名称 备注
静态代理 简单,代理模式,是动态代理的理论基础。常见使用在代理模式
jdk动态代理
需要有顶层接口才能使用,但是在只有顶层接口的时候也可以使用,常见是mybatis的mapper文件是代理。
使用反射完成。使用了动态生成字节码技术。
cglib动态代理 可以直接代理类,使用字节码技术,不能对 final类进行继承。使用了动态生成字节码技术。