一,对应列举

Java 中有 8 种基本数据类型,每种基本数据类型都有对应的包装类,它们分别是:

二,包装类的作用

1. 满足面向对象编程需求

Java 是面向对象的编程语言,基本数据类型不是对象无法使用面向对象的特性(如方法调用、继承、多态等)。而包装类是对象,可以像操作其他对象一样操作它们。例如:

Integer num = 10;
// 可以调用包装类提供的方法,获取数字的二进制表示形式
String binaryString = num.toBinaryString(num); 
System.out.println(binaryString); 

 在上述代码中,运用了int的包装类的方法调用功能

2. 用于集合框架

Java 集合框架(如ArrayListHashMap等)只能存储对象。当需要将基本数据类型存储到集合中时,就需要使用对应的包装类。比如:

import java.util.ArrayList;
import java.util.List;public class WrapperExample {public static void main(String[] args) {List<Integer> integerList = new ArrayList<>();integerList.add(5); // 自动装箱,实际是integerList.add(Integer.valueOf(5));integerList.add(10);System.out.println(integerList);}
}

关键点解释:

  1. List<Integer>

    • 这里声明了一个只能存储Integer对象的列表,不能直接存储基本类型int

  2. 自动装箱(Autoboxing)

    • integerList.add(5)看起来像是在添加基本类型int,但实际上Java会自动将其转换为Integer对象

    • 这行代码等价于:integerList.add(Integer.valueOf(5))

    • 这是Java 5引入的特性,称为自动装箱

  3. 自动拆箱(Unboxing)

    • 虽然代码中没有展示,但反过来从Integerint的自动转换称为自动拆箱

    • 例如:int num = integerList.get(0)会自动将Integer转换为int

执行过程

  1. 创建一个空的ArrayList,用于存储Integer对象

  2. 添加数字5时:

    • Java自动调用Integer.valueOf(5)将基本类型5转换为Integer对象

    • 然后将这个Integer对象添加到列表中

  3. 同样地处理数字10

  4. 最后打印列表内容,输出将是[5, 10]

注意事项

  1. 自动装箱/拆箱是编译器提供的语法糖,实际运行时还是会有对象创建的开销

  2. 在性能敏感的场合,大量使用自动装箱可能会影响性能

  3. Integer是对象,可以为null,而int不能为null

3. 提供了一系列实用的方法

每个包装类都提供了一些静态方法和实例方法,用于数据类型转换、常量获取、数值计算等操作。

  • 数据类型转换Integer类的parseInt方法可以将字符串转换为整数Double类的parseDouble方法可以将字符串转换为双精度浮点数等。例如:
String str = "123";
int num = Integer.parseInt(str);
System.out.println(num); 
  • 获取常量ByteShortIntegerLong等包装类提供了MIN_VALUEMAX_VALUE等常量,表示该数据类型的取值范围。比如:
System.out.println("int类型的最小值:" + Integer.MIN_VALUE); 
System.out.println("int类型的最大值:" + Integer.MAX_VALUE); 

4. 实现自动装箱和拆箱

自动装箱是指将基本数据类型自动转换为对应的包装类对象

自动拆箱则是将包装类对象自动转换为对应的基本数据类型

Java 5 引入了自动装箱和拆箱机制,让代码更加简洁。例如:

// 自动装箱
Integer integer = 10; 
// 自动拆箱
int basicInt = integer; 

在进行一些运算操作时,也会自动进行装箱和拆箱,如:

Integer num1 = 5;
Integer num2 = 3;
int sum = num1 + num2; // num1和num2自动拆箱,进行加法运算后结果再赋值给基本数据类型变量

三,总结:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/914303.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/914303.shtml
英文地址,请注明出处:http://en.pswp.cn/news/914303.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客网50题-10

1.小苯的数字权值#include <iostream> #include <algorithm> using namespace std;const int max_n 2000000; int d[max_n 1]; int f[max_n 1];int main() {for(int i 1; i<max_n;i){for(int j i; j<max_n;ji){d[j];}}for(int i1; i<max_n;i){f[i] d…

基于springboot的大学公文收发管理系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业多年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…

【机器学习】反向传播如何求梯度(公式推导)

写在前面 前期学习深度学习的时候&#xff0c;很多概念都是一笔带过&#xff0c;只是觉得它在一定程度上解释得通就行&#xff0c;但是在强化学习的过程中突然意识到&#xff0c;反向传播求梯度其实并不是一件简单的事情&#xff0c;这篇博客的目的就是要讲清楚反向传播是如何对…

ALB、NLB、CLB 负载均衡深度剖析

ALB、NLB、CLB 负载均衡深度剖析 前言 笔者在上周的实际工作中遇到了一个典型的负载均衡选择问题&#xff1a;在使用代理调用相关模型时&#xff0c;最初配置 Nginx 的代理地址为 ALB 的 7 层虚拟 IP&#xff08;VIP&#xff09;&#xff0c;但由于集团网络默认的超时时间为 3 …

历史数据分析——云南白药

医药板块走势分析: 从月线级别来看 2008年11月到2021年2月,月线上走出了两个震荡中枢的月线级别2085-20349的上涨段; 2021年2月到2024年9月,月线上走出了20349-6702的下跌段; 目前月线级别放巨量,总体还在震荡区间内,后续还有震荡和上涨的概率。 从周线级别来看 从…

【读书笔记】《Effective Modern C++》第3章 Moving to Modern C++

《Effective Modern C》第3章 Moving to Modern C 一、区分圆括号 () 与大括号 {} &#xff08;Item 7&#xff09; C11 引入统一初始化&#xff08;brace‑initialization&#xff09;&#xff0c;即使用 {} 来初始化对象&#xff0c;与传统的 () 存在细微差别&#xff1a;避…

Rust基础-part1

Rust基础[part1]—安装和编译 安装 ➜ rust curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh安装成功 [外链图片转存中…(img-ClSHJ4Op-1752058241580)] 验证 ➜ rust rustc --version zsh: command not found: rustc因为我是用的是zsh&#xff0c;所以zsh配置…

PyQt5布局管理(QGridLayout(网格布局))

QGridLayout&#xff08;网格布局&#xff09; QGridLayout&#xff08;网格布局&#xff09;是将窗口分隔成行和列的网格来进行排列。通常可以使用函数addWidget()将被管理的控件&#xff08;Widget)添加到窗口中&#xff0c;或者使用addLayout() 函数将布局&#xff08;Layou…

Java设计模式之行为型模式(责任链模式)介绍与说明

一、核心概念与定义 责任链模式是一种行为型设计模式&#xff0c;其核心思想是将请求沿着处理对象链传递&#xff0c;直到某个对象能够处理该请求为止。通过这种方式&#xff0c;解耦了请求的发送者与接收者&#xff0c;使多个对象有机会处理同一请求。 关键特点&#xff1a; 动…

SQL server之版本的初认知

SQL server之版本的初认知 为什么要编写此篇文档呢&#xff0c;主要是因为在最近测试OGG实时同步SQL server数据库表数据的时候&#xff0c;经过多次测试&#xff0c;发现在安装了一套SQL server2017初始版本&#xff0c;未安装任何补丁的时候&#xff0c;在添加TRANDATA的时候…

【前端】jQuery动态加载CSS方法总结

在jQuery 中动态加载 CSS 文件有多种方法&#xff0c;以下是几种常用实现方式&#xff1a; 方法 1&#xff1a;创建 <link> 标签&#xff08;推荐&#xff09; // 动态加载外部 CSS 文件 function loadCSS(url) {$(<link>, {rel: stylesheet,type: text/css,href:…

Python爬虫实战:研究xlwings库相关技术

1. 引言 在金融科技快速发展的背景下,数据驱动决策已成为投资领域的核心竞争力。金融市场数据具有海量、多源、实时性强等特点,传统人工收集与分析方式难以满足高效决策需求。Python 凭借其丰富的开源库生态,成为金融数据分析的首选语言。结合 Requests、BeautifulSoup 等爬…

Linux 内核日志中常见错误

目录 **1. `Oops`****含义****典型日志****可能原因****处理建议****2. `panic`****含义****典型日志****可能原因****处理建议****3. `BUG`****含义****典型日志****可能原因****处理建议****4. `kernel NULL pointer`****含义****典型日志****可能原因****处理建议****5. `WA…

Linux驱动开发2:字符设备驱动

Linux驱动开发2&#xff1a;字符设备驱动 字符设备驱动开发流程 字符设备是 Linux 驱动中最基本的一类设备驱动&#xff0c;字符设备就是一个一个字节&#xff0c;按照字节流进行读写操作的设备&#xff0c;读写数据是分先后顺序的。比如最常见的点灯、按键、 IIC、 SPI&#x…

RuoYi-Cloud 验证码处理流程

以该处理流程去拓展其他功能模块处理流程&#xff0c;进而熟悉项目开发代码一、思路JavaWeb流程主干线&#xff1a;发起请求、处理请求、响应请求二、登录页面在登录页面按键F12打开开发者工具&#xff0c;点击network&#xff0c;刷新页面&#xff0c;点击code&#xff0c;查看…

云计算三大服务模式深度解析:IaaS、PaaS、SaaS

架构本质&#xff1a;云计算服务模式定义了资源抽象层级和责任分担边界&#xff0c;形成从基础设施到应用的全栈服务金字塔。三种模式共同构成云计算的服务交付模型核心框架。一、服务模式全景图 #mermaid-svg-f0Klw2fbuhBQqJTh {font-family:"trebuchet ms",verdana…

【sql学习之拉链表】

1.拉链表理解 记录历史。记录一个事物从开始&#xff0c;一直到当前状态的所有变化的信息。字段说明&#xff1a; start_dt&#xff1a;该条记录的生命周期开始时间 end_dt&#xff1a;该条记录的生命周期结束时间 end_dt’9999/12/31’表示该条记录目前处于有效状态 如果查询当…

STM32中实现shell控制台(shell窗口输入实现)

文章目录 一、总体结构二、串口接收机制三、命令输入与处理逻辑四、命令编辑与显示五、历史命令管理六、命令执行七、初始化与使用八、小结在嵌入式系统开发中,使用串口Shell控制台是一种非常常见且高效的调试方式。本文将基于STM32平台,分析一个简洁但功能完整的Shell控制台…

区分三种IO模型和select/poll/epoll

部分内容来源&#xff1a;JavaGuide select/poll/epoll 和 三种IO模型之间的关系是什么&#xff1f;区分普通IO和IO多路复用普通IO&#xff0c;即一个线程对应一个连接&#xff0c;因为每个线程只处理一个客户端 socket&#xff0c;目标明确&#xff1a;线程中直接操作该 socke…

Actor-Critic重要性采样原理

目录 AC的数据低效性&#xff1a; 根本原因&#xff1a;策略更新导致数据失效 应用场景&#xff1a; 1. 离策略值函数估计 2. 离策略策略优化 3. 经验回放&#xff08;Experience Replay&#xff09; 4. 策略梯度方法 具体场景分析 场景1&#xff1a;连续策略更新 场…