我有一个基本的SpringBoot 2.1.5 SpringBoot应用程序。使用Spring初始化器、JPA、嵌入式Tomcat。关于Java垃圾收集,我猜服务的选项B比选项A更好,因为对象不留在内存中,对吗?
选项A:
@Override
public List<HotelPriceSummary> overRanked7d(User user) {
List<HotelPriceSummary> overRanked7dList =
allNonFavoritedHotels(user)
.parallelStream()
.filter(HotelPriceSummary.overRanked7dHotelsPredicate())
.sorted(comparing((HotelPriceSummary cps) -> cps.getDailyPercentageChange()).reversed())
.collect(toList());
return overRanked7dList;
}选项B:
@Override
public List<HotelPriceSummary> overRanked7d(User user) {
return
allNonFavoritedHotels(user)
.parallelStream()
.filter(HotelPriceSummary.overRanked7dHotelsPredicate())
.sorted(comparing((HotelPriceSummary cps) -> cps.getDailyPercentageChange()).reversed())
.collect(toList());
}发布于 2019-06-19 17:06:08
从JVM实现的角度来看,唯一的区别是声明返回对象的新对象引用。因此,在这两种情况下都不会创建新的对象,也不会使用新的内存。从编码的角度来看,选择B是首选。
https://stackoverflow.com/questions/56451285
复制相似问题