从JDK1.5开始,引入了自动装箱和自动拆箱的概念,实现了把基本数据类型转化为对象,以及把对象转化为基本数据类型,这给我们开发中提供了不少的便利,不过也存在一些使用的细节,如果使用不当,也可能造成相当严重的后果哦。

首先来看下面一段代码:

public static void main(String[] args) { Integer sum = 0; for (int i = 0; i <= 100; i++) { sum += i; } System.out.println(sum); } 

代 码很简单,只是对1到100内的数字进行求和,似乎一点问题也没有,不过当我们把100换成Integer.MAX_VALUE(2147483647) 时,似乎执行的时间有些久哦,废话,循环次数变多了,当然久了啊,似乎很有道理,真的是这样吗?我们再把Integer换成int,同时我们来计算一下时 间,代码如下:

public static void main(String[] args) { System.out.println(time1()); System.out.println(time2()); } public static long time1() { Date date1 = new Date(); int sum = 0; for (int i = 0; i < Integer.MAX_VALUE; i++) { sum += i; } return new Date().getTime() - date1.getTime(); } public static long time2() { Date date1 = new Date(); Integer sum = 0; for (int i = 0; i < Integer.MAX_VALUE; i++) { sum += i; } return new Date().getTime() - date1.getTime(); } 

执行结果好可怕,使用int,耗费1859ms,使用Integer耗费20381ms,当然这只有随机一次执行的结果,使用Integer构造了大约 2147483648的实例,使JVM的压力骤然增大,效率自然差别很大。因此:我们要优先使用基本类型,而不是装箱基本类型,要当心无意识的自动装箱

转载于:https://www.cnblogs.com/hexie/p/4975247.html

java自动装箱(是否是误区)相关推荐

  1. Java自动拆装箱面试_跟王老师学泛型(二):Java自动装箱与拆箱

    Java 自动装箱与拆箱(Autoboxing and unboxing) 主讲教师:王少华 QQ群:483773664 学习目标: 掌握Java 基本数据对应的包装类 掌握Java 自动装箱与拆箱 ...

  2. 【转】java 自动装箱与拆箱

    java 自动装箱与拆箱 这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆: java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的 ...

  3. Java 自动装箱与拆箱

    Java 自动装箱与拆箱 装箱就是自动将基本数据类型转换为包装器类型(int–>Integer):调用方法:Integer 的 valueOf(int) 方法 拆箱就是自动将包装器类型转换为基本 ...

  4. java 自动装箱自动拆箱

    1.Java数据类型 在介绍Java的自动装箱和拆箱之前,我们先来了解一下Java的基本数据类型. 在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference ...

  5. java自动装箱拆箱原理

    java自动装箱拆箱原理 看了很多博主都没写原理,只是浅显地说了自动装箱拆箱的含义,我就把这个必须知道的知识写一下吧 1.自动装箱 以int -> Integer为例,Integer integ ...

  6. java自动装箱和自动拆箱

    Java自动装箱和自动拆箱是Java语言的一颗语法糖. 下面说一下java的自动装箱和拆箱的例子 1. 深入理解java虚拟机上的一个例子 public static void testJvmBook ...

  7. java的自动装箱_详解Java 自动装箱与拆箱的实现原理

    详解Java 自动装箱与拆箱的实现原理 发布于 2020-7-4| 复制链接 本篇文章主要介绍了详解Java 自动装箱与拆箱的实现原理,小妖觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小妖 ...

  8. java自动装箱的好处_Java自动装箱、自动拆箱

    一.前言 Java自动装箱和自动拆箱是JDK5.0版本提供的新特性,所以在JDK5.0后的版本中都可以使用,之前的版本则不支持该特性. 理解自动装箱和自动拆箱需要先对java中的8种原始数据类型和相对 ...

  9. java list装箱,Java 自动装箱和拆箱

    Java 自动装箱和拆箱 在本教程中,我们将借助示例学习Java自动装箱和拆箱. Java自动装箱-包装器对象的原始类型 在自动装箱中,Java编译器会自动将原始类型转换为其相应的包装器类对象.例如, ...

  10. Java进阶(三十七)java 自动装箱与拆箱

    java 自动装箱与拆箱是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为拆箱): 其实按照我自己的理解自动 ...

最新文章

  1. linux系统最大支持多大硬盘容量,LINUX操作系统对硬件支持有上限么?最大多少内存?多大硬盘容量?...
  2. python numba库是什么,如何给python代码加速?JIT、autoit、LLVM
  3. Oracle数据库用户失效对象,Oracle数据库对象失效解决
  4. java调度:(四) spring中使用quartz的配置文件.
  5. C语言中使用静态函数的好处
  6. mysql数据库项目化教程郑小蓉_MySQL数据库项目化教程(高等职业教育“十三五”规划教材(软件技术专业))...
  7. MySQL数据以全量和增量方式,向ES搜索引擎同步流程
  8. 走进android的世界(不断更新中)
  9. tomcat8开启远程debug
  10. html页面div等分,HTML5使用纯CSS实现“按比例平分”整个垂直空间
  11. 周记20180309
  12. AB余商c语言编程答案,C语言课后题编程答案
  13. QT QTableView(基于QStandardItemModel用法)操作详解
  14. 百度高德经纬度-离线一键批量纠偏工具
  15. LWN:5.16 合并窗口,第二部分!
  16. 音频在计算机里存储形式是什么,如何在录音带上存储任何类型的文件
  17. 杭州随笔之欲把西湖比西子
  18. OFD文件转换支持PDF,PNG,GIF,BMP
  19. invalid non-printable character U+200D
  20. 结构体【struct】

热门文章

  1. 同时10万个事务在线,读写频繁,数据库该如何设计
  2. 2.4 Add a dynamic map
  3. 在featureDataset和workspace下創建featureclass
  4. Vista下的五笔输入法
  5. 数据结构C语言实现课后第1-2章答案
  6. 【Python-ML】非线性映射降维-KPCA方法
  7. 异常处理程序和软件异常——Windows核心编程学习手札之二十四
  8. Python 使用CORS跨域资源共享解决flask服务器跨域问题、浏览器同源策略
  9. Python 技术篇-index()字符串倒叙匹配获取索引,字符串切片反向输出,逆向输出字符串
  10. Python 图像处理篇-利用opencv库展示本地图片实例演示