Java Immutable and mutable

不可变对象 用途

1.在实例化时存在校验,不希望后续属性再次被修改(逃避校验)
2.存在多线程使用场景,不希望此代码运行对对象进行修改(事件对象,HTTPclient参数)

可变对象 用途

DTO类,被快速GC

使用技巧

1
2
3
4
5
6
7
8
9
10
@SuperBuilder
@Builder
@Getter

/** 此处只能避免不被修改引用,但是还是可以修改引用对象的值 **/
比如 Date
private final

Guava Collection之Immutable类

参考

https://juejin.cn/post/6844903586661400590
https://www.cnblogs.com/shoshana-kong/p/10822759.html
https://www.codenong.com/32989562/