自动装箱/拆箱机制
来源:互联网 发布:126邮箱imap端口 编辑:程序博客网 时间:2024/06/05 08:38
Java 1.5中引入了自动装箱和拆箱机制:
(1)自动装箱:把基本类型用它们对应的引用类型包装起来,使它们具有对象的特质,可以调用toString()、hashCode()、getClass()、equals()等方法。
如下:
Integer a=3;//这是自动装箱
其实编译器调用的是static Integer valueOf(int i)这个方法,valueOf(int i)返回一个表示指定int值的Integer对象,那么就变成这样:
Integer a=3; => Integer a=Integer.valueOf(3);
(2)拆箱:跟自动装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为基本类型的数据。
如下:
int i = new Integer(2);//这是拆箱
编译器内部会调用int intValue()返回该Integer对象的int值
注意:自动装箱和拆箱是由编译器来完成的,编译器会在编译期根据语法决定是否进行装箱和拆箱动作。
//Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150;
Short f1 = 100, f2 = 100, f3 = 150, f4 = 150;
System.out.println(f1 == f2); //true
System.out.println(f1.equals(f2)); //true
System.out.println(f3 == f4); //false
简单的说,如果字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引用常量池中的Integer对象,所以上面的面试题中f1==f2的结果是true,而f3==f4的结果是false。
- 自动装箱/拆箱机制
- Java自动装箱机制和自动拆箱机制
- java自动装箱和拆箱机制详解
- Java的自动装箱与拆箱机制
- NullPointerException 与 Java 自动装箱拆箱机制
- 自动装箱拆箱
- 自动拆箱,装箱
- 自动装箱拆箱
- 自动拆箱自动装箱
- 自动装箱自动拆箱
- int Integer 装箱 拆箱 自动装箱 自动拆箱
- 自动装箱与拆箱
- 自动装箱和拆箱
- 自动拆箱与装箱
- 自动装箱与拆箱
- 自动装箱和拆箱
- 自动拆箱和装箱
- Java自动拆箱装箱
- Git命令学习
- 关于laravel(5.5)访问public报错解决方法
- HDU 1242
- 数据结构实验:SDUT2482二叉排序树+3374平衡二叉树
- flask简单认识
- 自动装箱/拆箱机制
- Linux查看物理CPU个数、核数、逻辑CPU个数
- opencv HSV 颜色模型(H通道取值 && CV_BGR2HSV_FULL与CV_BGR2HSV的区别)
- boost.asio openssl zlib protobuf icu vs2015编译
- 都是前端,月薪10k和月薪20K以上到底有什么区别??
- DNS
- elasticsearch 官方文档
- 关于加载fonts.useso.com导致页面加载过慢问题
- Nginx——3