java 类名重复

Claes Redestad已在core-libs-dev邮件列表上发布了消息“ RRF:8187123 :(反映)Class#getCanonicalName和Class#getSimpleName是性能问题的一部分 ”,他在邮件列表中要求审查建议的更改“以启用缓存”的另一方面,getCanonicalName和getSimpleName ,重复这已报告是一个性能瓶颈的电话。” 他补充说:“缓存将这些方法的性能提高了20倍。”

解决性能问题的一个明显解决方案可能是将类的名称作为字段添加到Class类定义中,但是Redestad在关联的错误JDK-8187123中指出:“我们应避免向java.lang中添加更多字段。课 。” 取而代之的是,该错误的解决方法是“ 背负在ReflectionData中缓存的其他反射信息 ”。

ReflectionData是在Class类中定义的一个嵌套( private static )类。 Class类对ReflectionData的引用定义为:

private volatile transient SoftReference<ReflectionData<T>> reflectionData;

Class实例拥有对嵌套类ReflectionData的实例的软引用 ( java.lang.ref.SoftReference )。 用于SoftReference的类级Javadoc指出,“软引用是由垃圾收集器根据内存需求而酌情决定的”,并且软引用“最常用于实现对内存敏感的缓存”。 这似乎是平衡性能和内存问题的不错的解决方案。

邮件列表消息引用了对Class.java的建议更改的链接 。 回顾这些更改,您可以快速看到建议的代码更改如何将三个新的String添加到ReflectionData实例中包含的属性中,以表示规范名称,简单名称和类型名称。 当然,三种方法提供向这些细节[ 另一方面,getCanonicalName() , getSimpleName() ,和getTypeName() ]被改变为使用这些值。

在撰写本文时, JDK-8187123尚未与特定的Java版本关联。

翻译自: https://www.javacodegeeks.com/2018/05/faster-repeated-access-to-java-class-names-coming-to-java.html

java 类名重复

java 类名重复_更快地重复访问Java的Java类名?相关推荐

  1. “else if”是否比“switch()case”更快? [重复]

    本文翻译自:Is "else if" faster than "switch() case"? [duplicate] Possible Duplicate: ...

  2. java文档检测重复_使用Simian进行重复代码检测

    一.概述 Simian是一个可跨平台使用的重复代码检测工具,有商用和免费两种使用渠道,官方网址为:http://www.harukizaemon.com/simian/installation.htm ...

  3. linux 启动启动服务_更快地启动Linux

    linux 启动启动服务 在我曾经拥有或使用过的所有计算机中,启动速度最快的计算机是1980年代. 当您的手从电源开关移至键盘时,BASIC解释器已为您的命令准备就绪. 现代计算机从一台笔记本电脑花费 ...

  4. python hello world重复_查找数组中重复的数字-python版

    题目一:找出数组中重复的数字 在一个长度为n的数组中,数字在0~n-1范围内,数组中某些数字是重复的,但是不知道重复几个,也不知道重复几次,请找出数组中任意一个重复的数字 解法一:可以先将数据进行排序 ...

  5. java启动参数xmm_更快的方法来测试xmm / ymm寄存器是否为零?

    实际上,现有方法不是"非常慢",而是合理的 . 当然每个单独的测试都有4个周期的延迟1,但是如果你想将结果放在通用寄存器中,你通常会为这个移动支付3个周期的延迟(例如, movms ...

  6. 运行sql快还是java代码快,让Java代码跑得更快

    1.将一些系统资源放在池中,如数据库连 接,线程等.在standalone的应用中,数据库连接池可以使用一些开源的连接池实现,如C3P0,proxool和DBCP等,在运行在容器中的应 用这可以使用服 ...

  7. java面试题_阿里大厂流出的数百道 Java 经典面试题

    BAT 常问的 Java基础39道常见面试题 1.八种基本数据类型的大小,以及他们的封装类 2.引用数据类型 3.Switch能否用string做参数 4.equals与==的区别 5.自动装箱,常量 ...

  8. java jni编译_从源码编译Android系统的Java类库和JNI动态库的方法

    利用源码编译Android系统Java类库 1.编写Java项目和Android.mk文件 ├── Android.mk └── src └── com └── lhw └── framework └ ...

  9. java 编写代码_如果您在2016年编写过Java代码-这是您不容错过的趋势

    java 编写代码 2016年最有趣的Java相关主题 关于代码,有很多热门话题,而要跟上所有事情,这是一项全职的工作. 如果您想知道如何从谷壳中分离出小麦,我们已经为您完成了工作. 在下面的文章中, ...

最新文章

  1. python3.6 messagebox_Python Tkinter GUI编程入门介绍
  2. 区块链项目-Lisk
  3. 博客园社区登录帐号和第三方绑定的设置
  4. python报数组越界_python数组越界
  5. yii之behaviors
  6. 聊聊同步、异步、阻塞与非阻塞
  7. JavaScript 刷新当前页面
  8. Linux 末路,Kubernetes 崛起!
  9. excel两个字符串相减_Excel小技巧|三种方法计算算式字符串
  10. 矩阵取数游戏【题解】
  11. Excel 2016添加复选框
  12. DELPHI盒子FTP登录地址及用户密码
  13. python 3d绘图kmeans_使用Python matplotlib绘制3D多边形!
  14. 【RNN】基于RNN的动态系统参数辨识matlab仿真
  15. [导入]剿杀diskman.exe木马病毒
  16. [C语言]常用库函数
  17. js原型链,继承和promis的基本理解
  18. 计算机网络 华东理工大学 第1章测试
  19. 写完博客文章后,再给爬下来,保存在本地~ 哈阿哈
  20. MATLAB实现CRC校验码的计算

热门文章

  1. 牛客题霸 [括号序列] C++题解/答案
  2. 水题(water)(非详细解答)
  3. 周末狂欢赛2(冒泡排序,概率充电器,不勤劳的图书管理员)
  4. 洛谷P5110:块速递推(特征根方程、光速幂)
  5. P4852-yyf hates choukapai【单调队列优化dp】
  6. POJ1275-Cashier Employment【差分约束系统】
  7. jzoj4273-圣章-精灵使的魔法语【线段树】
  8. 【2018.3.24】模拟赛之二-ssl2546 求和【贪心】
  9. 【spfa】假期计划(jzoj 3936)
  10. CF526G Spiders Evil Plan(树上最优性问题、倍增+线段树)