本地缓存和分布式缓存的比较:
分布式缓存一致性更好一点,本地缓存 每个实例都有自己的缓存,可能会存在不一致的情况。
本地缓存会占用堆内存,影响垃圾回收、影响系统性能。分布式缓存两大开销会导致其慢于本地缓存,网络延迟和对象序列化
进程内缓存适用于较小且频率可见的访问场景,尤其适用于不变对象,对于较大且不可预见的访问,最好采用分布式缓存。
堆污染:
java中,当一个可变泛型参数指向一个无泛型参数时,堆污染(Heap Pollution)就有可能发生。可能会导致ClassCastException 的发生。
形变(Variance):
java中包含三种类型的XX-Variance:
1. 协变(covariance)
2. 逆变(contravariance)
3. 不变(invariance)
这三种都是用来描述类型转换后的继承关系,其定义:如果A、B表示类型,f(.)表示类型转换,<表示继承关系,A<B表示A是由B派生出来的子类。
当A<B时,有f(A)<f(b),协变
当A<B时,有f(B)<f(A),逆变
两个都不成立,不变。