Long源码与常见问题

Long的缓存

Long 最被我们关注的就是 Long 的缓存问题,Long 自己实现了一种缓存机制,缓存了从 -128 到 127 ,即 -2~ 2-1 内的所有 Long 值,如果是这个范围内的 Long 值,就不会初始化,而是从缓存中拿,缓存初始化源码如下:

private static class LongCache {private LongCache(){}static final Long cache[] = new Long[-(-128) + 127 + 1];static {for(int i = 0; i < cache.length; i++)cache[i] = new Long(i - 128);}
}

面试题

为什么使用 Long 时,大家推荐多使用 valueOf 方法,少使用 parseLong 方法

答:因为 Long 本身有缓存机制,缓存了 -128 到 127 范围内的 Long,valueOf 方法会从缓存中去拿值,如果命中缓存,会减少资源的开销,parseLong 方法就没有这个机制。

Long#valueOf源码如下

public static Long valueOf(long l) {final int offset = 128;if (l >= -128 && l <= 127) { // 从缓存中取return LongCache.cache[(int)l + offset];}return new Long(l);
}

Long源码与常见问题相关推荐

  1. [网站帮助] 51aspx源码使用常见问题及解答(三十六计)

    问题解答  常见帮助  一.程序运行时出现的数据库连接错误 您所在的用户组无法下载或查看附件 A : 基本上在 web.config 中修改一下连接数据库字符串中的服务器名就可以了,不会修改的可以参考 ...

  2. 编译mysql 5.7 源码安装常见问题

    cmake版本 5.7编译cmake要求版本最低为2.8,当前为2.6,所以需要升级cmake版本.信息如下 shell> cmake . -DCMAKE_INSTALL_PREFIX=/db/ ...

  3. php7.4 源码安装

    常见问题和解决方法>>>>>php 源码安装常见问题_迷途大灰狼的博客-CSDN博客 下载安装包PHP: Downloads 7.3和7.4安装主要不同在于配置命令,有部 ...

  4. python源码库安装_Python第三方库安装及常见问题

    源码安装 Python第三方库几乎都可以在github或者 pypi上找到源码.源码包格式大概有zip . tar.zip. tar.bz2.解压这些包,进入解压好的文件夹,通常会有一个setup.p ...

  5. 微信小程序/uni-app 蓝牙打印开发教程和常见问题总结【文末附源码】

    微信小程序/uni-app 蓝牙打印开发教程和常见问题总结[文末附源码] 文章目录 微信小程序/uni-app 蓝牙打印开发教程和常见问题总结[文末附源码] 1️⃣ 写在前面 2️⃣ 蓝牙连接流程 3 ...

  6. MySQL卸载、下载、安装、配置、目录结构、源码、登录、编码设置、可视化工具、MySQL的常见问题的解决

    目录 MySQL的卸载 MySQL下载.安装.配置 MySQL的4大版本 软件的下载 MySQL8.0 版本的安装 配置MySQL8.0 配置MySQL8.0 环境变量 MySQL5.7 版本的安装 ...

  7. 整理了一下Asp.net源码常见问题(完善中...),欢迎大家补充修正(最后更新于06-01)!...

    以下是一些51aspx网友经常反馈的问题,特总结放在下面,本部分内容会陆续更新.同时也提醒广大网友在仔细查看源码项目对应的运行环境及每个代码中所附的文本文件<51aspx源码必读.txt> ...

  8. [大数据可视化]-saiku的源码包Bulid常见问题和jar包

    最近在做kylin+mondrian+saiku的二次开发的时候,Bulid saiku的源码出现了很多问题,基本上一大部分问题jar找不到问题,很多jar国内网站都找不到.这时候只有手动下载然后注册 ...

  9. ST-GCN源码运行完整版(含OpenPose编译安装)及常见问题

    ST-GCN源码运行完整版(含OpenPose编译安装) -------本文仅为学习笔记,不做任何商业用途------- 下述相关工具包下载链接ST-GCN所需工具,提取码ze36 一.准备工作 1. ...

最新文章

  1. 经典网络LeNet-5介绍及代码测试(Caffe, MNIST, C++)
  2. 毕业后的五年拉开大家差距的原因在哪里
  3. 如何用mysql创建orders表_《MySQL必知必会》学习笔记
  4. Arthas 征文活动火热进行中,cherry 键盘等你来拿!(内附第三期中奖名单)
  5. 如何使用idea REST Clinet 代替PostMan发送Http请求
  6. 上班族不知不觉发财的十大秘诀
  7. 交付方式 saas_我在全职工作时如何交付我的第一个SaaS副项目
  8. 2021年中国电子高度表市场趋势报告、技术动态创新及2027年市场预测
  9. django 1.8 官方文档翻译: 8-3 点击劫持保护 1
  10. x264 x264_slicetype_analyse 函数分析
  11. Eclipse自动生成get和set方法
  12. Illustrator2020中文版教程,如何在AI中使用蒙版来裁剪内容?
  13. c语言数组存在哪个地方,C语言数组考点归纳
  14. AT指令判断NBIoT网络质量
  15. 《人月神话》(P8)巴比伦塔的失败
  16. SAP中由生产版本有误导致的生产报工时提示“错误确定成本核算”问题实例
  17. python程序设计的选择题_智慧树Python程序设计基础选择题答案
  18. PGN: 指针生成网络(Get To The Point: Summarization with Pointer-Generator Networks)
  19. Personalized Federated Learning with Moreau Envelopes论文阅读+代码解析
  20. 数组首地址arry和arry的区别

热门文章

  1. 用HTML+CSS+JS做一个漂亮的个人网页
  2. 手机百度浏览器ua标识在哪里_浏览器标识(ua)的那些事
  3. 「Python条件结构」if…else实现计算税后工资
  4. 计算机毕业设计SSM大学生校园社团管理系统【附源码数据库】
  5. JAVAWEB校园二手平台项目
  6. 函数 单片机glint_单片机数字化资源库
  7. Python 第几周和星期几
  8. 无法输入中文标点符号问题解决方案【亲测有效】
  9. 未来十年的音视频,教科书级别的Android音视频开发教程,学完我成功“挤进”了抖音音视频开发岗
  10. 变异凯撒1(BUCTF在线评测)