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

yizhihongxing

有时,需要将 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.cnblogs.com/feiyu2/p/17367902.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java的对象包装器 & 自动装箱 - Python技术站

(0)
上一篇 2023年5月2日
下一篇 2023年5月2日

相关文章

  • Jquery解析Json格式数据过程代码

    下面是详细讲解“Jquery解析Json格式数据过程代码”的完整攻略。 什么是 JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON是基于JavaScript的一个子集,因此在JavaScript环境中具有天然的兼容性,同时由于其简洁性和通用性,也被用于其他…

    Java 2023年6月15日
    00
  • Java 装箱与拆箱详解及实例代码

    Java 装箱与拆箱详解及实例代码 什么是装箱与拆箱 在Java中,基本的数据类型包括byte, short, int, long, float, double, char, boolean等。而Java中还有一种引用类型,例如String、Scanner等。在此基础上,Java还增加了一种特殊的包装类型,它们分别是Byte, Short, Integer,…

    Java 2023年5月23日
    00
  • mybatis深入讲解resultMap的定义及用法

    MyBatis深入讲解resultMap的定义及用法 在使用MyBatis进行数据操作时,查询结果可能会被映射到Java对象中或者直接返回Map类型数据,而MyBatis提供了resultMap来帮助我们自定义查询结果的映射方式。本文将详细介绍resultMap的定义及用法。 ResultMap定义 resultMap是一个非常重要的MyBatis配置元素,…

    Java 2023年5月20日
    00
  • 2019年成功入职阿里:阿里的三套Java研发岗面试题总结

    “2019年成功入职阿里:阿里的三套Java研发岗面试题总结”攻略 背景 很多人梦想能够进入阿里巴巴这样的大公司,但是阿里的面试难度比较大,尤其是对于Java研发岗位的面试,更是要求很高。本文将总结出阿里Java研发岗最近几年出现的面试题及解答方法,希望大家能够有所收获。 面试题总结 阿里Java研发岗的面试题主要分为三套: 基础知识类 这套面试题主要考察面…

    Java 2023年5月19日
    00
  • boot-admin整合flowable官方editor-app进行BPMN2.0建模

    正所谓百家争鸣、见仁见智、众说纷纭、各有千秋!在工作流bpmn2.0可视化建模工具实现的细分领域,网上扑面而来的是 bpmn.js 这个渲染工具包和web建模器,而笔者却认为使用flowable官方开源 editor-app 才是王道。 Flowable 开源版本中的 web 版流程设计器editor-app,展示风格和功能基本跟 activiti-mode…

    Java 2023年4月22日
    00
  • java中lambda表达式简单用例

    接下来我将为您详细讲解Java中Lambda表达式的简单用例攻略。 Lambda表达式简介 Lambda表达式是Java SE 8中新增的一个功能。它是一种匿名函数,它可以看做一种简化的、更紧凑的匿名内部类的写法。Lambda表达式的目的是使得Java语言更加紧凑、更易于读写。 Lambda表达式的语法 Lambda表达式的语法如下: (parameter1…

    Java 2023年5月26日
    00
  • jsp中实现上传图片即时显示效果功能

    要在JSP中实现上传图片即时显示效果的功能,可以采用以下步骤: 在JSP页面中添加上传文件表单和图片预览区域 <form action="upload.jsp" method="post" enctype="multipart/form-data"> <input type=&qu…

    Java 2023年6月15日
    00
  • Java JDBC API介绍与实现数据库连接池流程

    Java JDBC API介绍与实现数据库连接池流程 JDBC API介绍 Java Database Connectivity(JDBC)是一个Java API,让Java应用程序与关系型数据库进行交互。JDBC API允许开发人员执行SQL查询和更新以及事务处理。 JDBC API的主要组成部分是: DriverManager类:负责创建数据库连接。 C…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部