Java 功能关键:主动装箱/ 拆箱 (Autoboxing / Unboxing)ITeye - 千亿集团

Java 功能关键:主动装箱/ 拆箱 (Autoboxing / Unboxing)ITeye

2019-01-12 00:58:15 | 作者: 晨濡 | 标签: 主动,装箱,变量 | 浏览: 2630

本文系 OneAPM 工程师编译呈现,以下为正文。

假如我通知你:“只需修正一个字符,下面这段代码的运转速度就能进步5倍。”,你觉得或许么?

long t = System.currentTimeMillis();
Long sum = 0L;for (long i = 0; i Integer.MAX_VALUE; i++) {
 sum += i;
System.out.println("total:" + sum);
System.out.println("processing time: " + (System.currentTimeMillis() - t) + " ms");

 

输出成果: 
总数:2305843005992468481 
处理时刻:6756 ms

细心揣摩一下,你或许会想到下面这种履行速度更快的完成办法:

long t = System.currentTimeMillis();//Long sum = 0L;long sum = 0L;for (long i = 0; i Integer.MAX_VALUE; i++) {
 sum += i;
System.out.println("total:" + sum);
System.out.println("processing time: " + (System.currentTimeMillis() - t) + " ms") ;

 

输出成果: 
总数:2305843005992468481 
处理时刻:1248 ms

其实,主动装箱(Autoboxing)的草率使用是形成速度差异的根本原因,而这一特性从 Java 1.5 开端就已呈现了。

在持续解说形成差异的细节之前,让我们细心回味一下 Java 中的这两个概念:主动装箱(Autoboxing)与 拆箱(Unboxing)。

Java 中的变量分为两种:原始型与引证型。总共存在8个原始型变量以及与各个原始变量对应的8个引证变量(包装类)。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章