Java的对象包装器 & 自动装箱

这篇具有很好参考价值的文章主要介绍了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 对象包装器与自动装箱文章来源地址https://www.toymoban.com/news/detail-431703.html

到了这里,关于Java的对象包装器 & 自动装箱的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中的自动装箱与自动拆箱

    在Java中,基本数据类型与其对应的封装类之间可以进行自动转换,这种特性称为自动装箱(autoboxing)和自动拆箱(unboxing)。自动装箱和自动拆箱使得我们在使用基本数据类型时更加方便,同时也提高了代码的可读性和健壮性。本文将详细介绍Java中的自动装箱和自动拆箱机

    2023年04月22日
    浏览(34)
  • Java 中的自动装箱和拆箱详解

    目录 1、Java中的自动装箱 2、Java中的自动拆箱 3、自动装箱和拆箱总结   4、在Java中怎样避免自动装箱和拆箱? 1、Java中的自动装箱          自动装箱 是 Java 编译器在基本类型和它们对应的包装类之间进行的自动转换。例如,将 int 类型转换为 Integer 类型,将 double 类型转

    2024年02月09日
    浏览(43)
  • JAVA包装类和基本数据类型------JAVA入门基础教程

    public class WrapperTest {     public static void main(String[] args)     {         int i1 = 10;         Integer i11 = new Integer(i1);         System.out.println(i11);         float f1 = 12.3F;         f1 = 32.2F;         Float ff1 = new Float(f1);         System.out.println(ff1);         String s1 = \\\"32.1\\\";         F

    2024年02月02日
    浏览(43)
  • Java 中有了基本类型为什么还需要包装类?

    Java 中有8种基本数据类型,这些基本类型又都有对应的包装类。 分类 基本数据类型 包装类 布尔型 boolean Boolean 整型 byte Byte short Short int Integer long Long 字符型 char Character 浮点型 float Float double Double 因为 Java 是一种面向对象语言,很多地方都需要使用对象而不是基本数据类型。

    2024年02月14日
    浏览(43)
  • 30. 串联所有单词的子串【memset(hash, 0, sizeof(hash)) 这样的方式真的不要再使用、leetcode有时真的会g的】

    30. 串联所有单词的子串 C代码:滑动窗口、字符串异位段 C代码:失败案例:哈希表保存重复出现

    2024年02月02日
    浏览(41)
  • 你不知道的自动装箱和拆箱

    “改天是明天,下次是每一次,以后是以后的每一天” 装箱就是自动将基本数据类型转换为包装器类型(int–Integer);调用方法:Integer的valueOf(int) 方法 拆箱就是自动将包装器类型转换为基本数据类型(Integer–int);调用方法:Integer的intValue方法 在Java SE5之前,如果要生成一个数值为

    2024年02月02日
    浏览(43)
  • 1.原始数据的对象包装器 - JS

    已知,JS 中数据类型分为两种: 原始数据类型:数、字符串、布尔值、大数、Symbol、null、undefined(7个); 引用数据类型:对象(自定义对象、内置对象 Array/Map/Set/Date/Error/Promise……)。 对于原始数据和部分对象,允许通过字面量进行赋值操作。但是不影响两种数据的存储

    2024年02月19日
    浏览(41)
  • 包装类、多线程的基本使用

    基本类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 2.1Integer基本使用 Boolean包装类中 , 底层调用了parseBoolean(String s) , 在parseBoolean中调用了equals.IgnoreCase(s) , 忽略了大小写 2.2装箱and拆箱 2.3自动拆箱装箱 在操作的过程中,基本类型和包装

    2024年02月09日
    浏览(35)
  • int和Integer的区别是什么,自动装箱和自动拆箱到底是什么?

    基本类型 vs. 包装类型: int 是Java的基本数据类型,它直接存储整数值,不具备任何方法或属性。基本类型通常更高效,占用更少的内存。 Integer 是 int 的包装类,它是一个对象,具有方法和属性。包装类提供了一些额外的功能,如转换为其他数据类型、比较、转换为字符串等

    2024年02月08日
    浏览(39)
  • 基本数据类型和包装类型 使用规范

    自动装箱(Autoboxing)和拆箱(Unboxing)是Java中用于在基本数据类型和其对应的包装类型之间进行转换的机制。这两种机制的目的是使代码更简洁和易读,同时提供类型安全性。 1、自动装箱:将基本数据类型的值自动封装成相应的包装类型对象。例如,将 int 转换为 Integer,将

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包