薛定谔的糊涂猫 2020-11-09 16:23 采纳率: 0%
浏览 1066

为什么Java 9不建议使用new Integer了?

看到API中出现了这样的注释,这是出于什么考虑?

java.lang.Integer @Deprecated(since = "9") 
@Contract(pure = true) 

  • 写回答

2条回答 默认 最新

  • 吃不胖的茶叶蛋 2020-11-09 16:32
    关注
    @HotSpotIntrinsicCandidate
        public static Integer valueOf(int i) {
            if (i >= IntegerCache.low && i <= IntegerCache.high)
                return IntegerCache.cache[i + (-IntegerCache.low)];
            return new Integer(i);
        }
    
    

    上面是valueOf, 当你传入小于128的值时,返回的是内置的缓存值,节省空间和效率。

    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题