【发布时间】:2020-04-02 16:19:25
【问题描述】:
所以在我的程序中我有很多检查,例如:
return Optional.ofNullable(issuer)
.orElseThrow(() -> new OAuth2AuthenticationException
new OAuth2Error(code, description, null));
所以我开始考虑创建一个包含大约 6 个字段的常量类,例如:
public static final OAuth2AuthenticationException ISSUER_IS_NOT_TRUSTED_EXCEPTION =
new OAuth2AuthenticationException(new OAuth2Error(
INVALID_ISSUER, "Issuer is not trusted", null));
现在我有类似的东西:
return Optional.ofNullable(issuer)
.orElseThrow(() -> ISSUER_IS_NOT_TRUSTED_EXCEPTION);
我的问题是:这款游戏值得吗?因为如果每次都创建这些对象可能会占用更多内存一段时间(如果有很多并发用户试图非法访问 moemt 中的资源),但所有这些对象都会被 GC 销毁。
需要多少堆来存储类似 6 的异常,我应该这样做吗?
【问题讨论】:
-
“存储 6 个异常需要多少堆”可以忽略不计。但是您为什么不使用分析器并亲自查看呢?
-
@FedericoklezCulloca 因为在这里问比较容易,如果没人给我答案,我应该自己检查一下
-
这样存储异常(或大多数对象)没有意义。
-
@Kayaman 为什么不呢?
-
@Kayaman 不仅如此,使用堆栈跟踪存储异常是没有意义的,而堆栈跟踪在引发异常时并不指示堆栈。
标签: java constants heap-memory