博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的自动装箱与自动拆箱
阅读量:5092 次
发布时间:2019-06-13

本文共 869 字,大约阅读时间需要 2 分钟。

基本数据类型的自动装箱拆箱是自Java 5开始提供的功能。 

 

基本数据类型的自动装箱功能:

我们创建一个类的对象实例的时候:

Class a = new Class(parameter);

 当我们创建一个Integer对象时,却可以这样:

Integer i = 100;

实际上,执行上代码的时候,执行了:

Integer i = Integer.valueOf(100);

 

自动拆箱是将对象中的基本数据从对象中自动取出

Integer i = 10; //装箱  int t = i;  //拆箱,实际上执行了 int t = i.intValue();

 

值得注意的地方:

  Integer的自动装箱

//在-128~127 之外的数  Integer i1 =200;   Integer i2 =200;           System.out.println("i1==i2: "+(i1==i2));                    // 在-128~127 之内的数  Integer i3 =100;   Integer i4 =100;   System.out.println("i3==i4: "+(i3==i4));
 输出结果:
  i1==i2: false    i3==i4: true

原因:(Integer源码)

public static Integer valueOf(int i) {    if(i >= -128 && i <= IntegerCache.high)  // 没有设置的话,IngegerCache.high 默认是127        return IntegerCache.cache[i + 128];  //在范围内返回原对象    else        return new Integer(i);           //不在范围内返回的是新的对象}

 

 
 

转载于:https://www.cnblogs.com/dehao/p/11202782.html

你可能感兴趣的文章
Zookeeper常用命令 (转)
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>
重构代码 —— 函数即变量(Replace temp with Query)
查看>>
Bootstrap栅格学习
查看>>
程序员的数学
查看>>
聚合与组合
查看>>
如何理解汉诺塔
查看>>
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
Linux基本操作
查看>>
osg ifc ifccolumn
查看>>
C++ STL partial_sort
查看>>
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>
WebDriverExtensionsByC#
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
重启rabbitmq服务
查看>>
正则表达式(进阶篇)
查看>>