目录
三,测试不可变对象LocalDateTime的plusMinutes()方法
总结:
1,不要大量使用不可变对象和不可边对象提供的方法(每次调用不可变对象的修改方法会创建出新的对象出来,导致频繁的YGC)
2,计算密集型任务不要使用包装类(包装类体积大,数据密度低,增加取存数据时间。运算时也会创建大量的包装类对象出来)
3,不要在循环体中使用不可变对象提供的方法(可能会创建大量的一次性对象出来)
一,java中的不可变对象
Java中有许多不可变的对象,以下是其中的一些:
- 字符串(String):字符串在Java中是不可变的对象。一旦创建了一个字符串对象,它的值就不能被修改。
- 整数(Integer)、长整数(Long)、浮点数(Float)和双精度浮点数(Double):这些数字类型在Java中也是不可变的对象。一旦创建了一个数字对象,它的值就不能被修改。
- 枚举(Enum):枚举类型也是不可变的对象。枚举类型中的每个元素都是一个不可变的对象。
- LocalDate、LocalTime、LocalDateTime:Java 8中的日期和时间API中的这些类也是不可变的对象。一旦创建了一个日期或时间对象,它的值就不能被修改。
- BigInteger、BigDecimal:这些类提供了任意精度的整数和浮点数运算,也是不可变的对象。
Java 中的不可变对象(Immutable Objects)详解_immutable object is modified-CSDN博客
二,不可变对象的优点
&nb