设为首页 加入收藏

TOP

Java的对象包装器 & 自动装箱
2023-07-25 21:28:37 】 浏览:9
Tags:Java 包装器

有时,需要将 int 这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类。例如,Integer 类对应基本类型 int。通常,这些类被称为包装器(wrapper)。这些对象包装器类拥有很明显的名字:Integer、Long、Float、Double、Short、Byte、Character、Void 和 Boolean(前 6 个类派生于公共的父类 Number)。对象包装器类是不可变的,即一旦构造了包装器,就不允许更改包装在其中的值。同时,对象包装器类还是 final,因此不能定义它们的子类。

有一个很有用的特性,从而更加便于添加 int 类型的元素到 ArrayList 中。下面这个调用 list.add(3); 将自动地变换成 list.add(Integer.valueOf(3));。这种变换被称为自动装箱(autoboxing)。

相反地,当将一个 Integer 对象赋给一个 int 类型的变量时,将会自动地拆箱。也就是说,编译器将下列语句:int n = list.get(i); 翻译成 int n = list.get(i).intValue();。

最后强调一下,装箱和拆箱是编译器认可的,而不是虚拟机。编译器在生成类的字节码时,插入必要的方法调用。虚拟机只是执行这些字节码。

参考资料

《Java核心技术卷一:基础知识》(第10版)第 5 章:继承 5.4 对象包装器与自动装箱

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java 网络编程 —— ServerSocket.. 下一篇Mybatis常见知识点

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目