gpt4 book ai didi

java - 为什么 Class.getSimpleName() 没有被缓存?

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:03 26 4
gpt4 key购买 nike

如果您查看 Sun 实现 Class.getSimpleName() 的源代码,您会注意到它似乎每次调用它时都会返回一个新的 String 实例。然而,Class 类中的许多其他功能都被缓存了。

由于简单的名称计算似乎并不容易,而且 JavaDoc 中也没有说它每次都必须返回一个新实例,因此它应该是一个很好的缓存候选者。我想知道是否有任何设计原因不缓存它?

我问是因为许多框架一直使用简单的名称,这很容易缓存。

最佳答案

更新:名称缓存在 OpenJDK 11 中

在 OpenJDK 11 及更高版本中,类名缓存。查看 Class.java 的 OpenJDK 源代码并搜索 private ReflectionData<T> reflectionData()getSimpleName 调用的方法方法。

详情见工单JDK-8187123 .

关于java - 为什么 Class.getSimpleName() 没有被缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17369304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com