当前位置: 首页 > news >正文

包装类笔记

包装类

5.1 概述

Java 提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:

基本类型对应的包装类(位于 java. Lang 包中)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
除了这个 char he int型数据,别的都是首字母大写就好了
包装类总结来说就是以基本数据类型未标桩定义的对象包

5.2 Integer 类

  • Integer 类概述
    包装一个对象中的原始类型 int 的值
  • Integer 类构造方法及静态方法
方法名说明
public Integer (int value)根据 int 值创建 Integer 对象 (过时)
public Integer (String s)根据 String 值创建 Integer 对象 (过时)
public static Integer valueOf (int i)返回表示指定的 int 值的 Integer 实例
public static Integer valueOf (String s)返回保存指定 String 值的 Integer 对象
static string tobinarystring (int i)得到二进制
static string tooctalstring (int i)得到八进制
static string toHexstring (int i)得到十六进制
static int parseInt (string s)将字符串类型的整数转成 int 类型的整数
    public static void main(String[] args) {Integer last1 = new Integer(10); //以前过时的创建方法Integer last2= new Integer("1234");  //也是过时的创建方法System.out.println(last1);  //10System.out.println(last2);  //1234//现在的Integer创建方式一般是用这个静态方法直接进行创建Integer now1 = Integer.valueOf(10);  //10Integer now2 = Integer.valueOf("4567");  //4567System.out.println(now1);System.out.println(now2);//包装类的进制转换/** 下面这个也是一种静态方法* 主要作用是将这个里面传递的参数转化为一个自己定义的进制* */String binary= Integer.toBinaryString(10); //十进制String binary1= Integer.toOctalString(9); //八进制String binary2 = Integer.toHexString(17);//十六进制System.out.println(binary);//1010System.out.println(binary1);//11System.out.println(binary2);//11}

其中这个方法是不全的,对于这个 parse 转化,我们可以又 parseInt 也可以有 Double. parseDouble,也可以有 Boolean. parseBoolean
同样对于这个 toXXXString 方法,我们也有一个总方法就是 toString 方法,这个方法可以我们自己自定义这个进制

        String binary3 = Integer.toString(3,2);String binary4 = Integer.toString(9,8);String binary5 = Integer.toString(10,9);System.out.println(binary3);System.out.println(binary4);System.out.println(binary5);

但是要注意这个 Double 类型虽然也有这个 toString 方法,但是却不能进行进制转化
有关于进制转化的可以看这个文章。一个是 obsidian 的内链,一个是博客的链接
[[二进制, 八进制, 和十六进制的输入和输出]]
博客

5.3 装箱与拆箱

基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:

  • 装箱:从基本类型转换为对应的包装类对象。
  • 拆箱:从包装类对象转换为对应的基本类型。

用 Integer 与 int 为例:(看懂代码即可)
基本数值---->包装对象

Integer i = new Integer (4);//使用构造函数函数
Integer iii = Integer.ValueOf (4);//使用包装类中的 valueOf 方法

包装对象---->基本数值

int num = i.intValue ();

        int i = now1.intValue();int i2 = now2.intValue();byte a = now1.byteValue();byte b = now2.byteValue();System.out.println(i);System.out.println(i2);System.out.println(a);System.out.println(b);

对于这个装箱和拆箱的过程,其中拆箱其实就是对这个包装类的成员值变量进行了强制类型转化

    private final int value;public byte byteValue() {return (byte)value;}

对于这个装箱的过程,我们其实就是对这个包装类的内部成员进行赋值

	private final int value;public Integer(int value) {this.value = value;}

5.4 自动装箱与自动拆箱

由于我们经常要做基本类型与包装类之间的转换,从 Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如:
Integer i = 4;//自动装箱。相当于 Integer i = Integer.ValueOf (4);
i = i + 5;//等号右边:将 i 对象转成基本数值 (自动拆箱) i.intValue () + 5;
//加法运算完成后,再次装箱,把基本数值转成对象。

5.5 基本类型与字符串之间的转换

基本类型转换为 String

  • 转换方式
  • 方式一:直接在数字后加一个空字符串
  • 方式二:通过 String 类静态方法 valueOf()
  • 示例代码
public class IntegerDemo {public static void main(String[] args) {//int --- Stringint number = 100;//方式1String s1 = number + "";System.out.println(s1);//方式2//public static String valueOf(int i)String s2 = String.valueOf(number);System.out.println(s2);System.out.println("--------");}
}

String 转换成基本类型

除了 Character 类之外,其他所有包装类都具有 parseXxx 静态方法可以将字符串参数转换为对应的基本类型

  • public static byte parseByte(String s):将字符串参数转换为对应的 byte 基本类型。
  • public static short parseShort(String s):将字符串参数转换为对应的 short 基本类型。
  • public static int parseInt(String s):将字符串参数转换为对应的 int 基本类型。
  • public static long parseLong(String s):将字符串参数转换为对应的 long 基本类型。
  • public static float parseFloat(String s):将字符串参数转换为对应的 float 基本类型。
  • public static double parseDouble(String s):将字符串参数转换为对应的 double 基本类型。
  • public static boolean parseBoolean(String s):将字符串参数转换为对应的 boolean 基本类型。

[!tip]

除了 Character 类之外,其他所有包装类都具有 parseXxx 静态方法可以将字符串参数转换为对应的基本类型;
为什么 Character 类没有呢
这是因为这些强制转化的参数都是字符串的类型
Character 类表示一个字符,而字符本身就是一个单个的字符,无法像整数或浮点数那样具有多个字符组成的表示形式。因此,从字符串中解析字符的需求不如解析整数或浮点数那样常见。
如果想将一个表示单个字符的字符串转换成 char 类型,可以使用 charAt 方法来提取其中的字符。例如:

String str = "A"; 
char c = str.charAt(0); 
System.out.println(c);  // 输出:A

代码使用(仅以 Integer 类的静态方法 parseXxx 为例)如:

  • 转换方式
    • 方式一:先将字符串数字转成 Integer,再调用 valueOf ()方法
    • 方式二:通过 Integer 静态方法 parseInt ()进行转换
  • 示例代码
public class IntegerDemo {public static void main(String[] args) {//String --- intString s = "100";//方式1:String --- Integer --- intInteger i = Integer.valueOf(s);//public int intValue()int x = i.intValue();System.out.println(x);//方式2//public static int parseInt(String s)int y = Integer.parseInt(s);System.out.println(y);}}

[!warning]

如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出 java.lang.NumberFormatException 异常。

相关文章:

包装类笔记

包装类 5.1 概述 Java 提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使…...

TC和TG油封有什么区别?

油封是各种机械系统(包括发动机和工业机械)中的重要部件,因为它们可以防止润滑剂和污染物的泄漏。在可用的不同类型的油封中,常用的是TC和TG密封件。在本文中,我们将讨论TC和TG油封之间的差异,帮助您了解它们的独特特性和应用。 …...

大数据之MapReduce

MapReduce概述 是一个分布式的编程框架,MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 优点: 易于编程,简单的实现一些接口,就可以完成一…...

《机器人学一(Robotics(1))》_台大林沛群 第 5 周【机械手臂 轨迹规划】 Quiz 5

我又行了!🤣 求解的 位置 可能会有 变动,根据求得的A填写相应值即可。注意看题目。 coursera链接 文章目录 第1题 Cartesian space求解 题1-3 的 Python 代码 第2题第3题第4题 Joint space求解 题4-6 的 Python 代码 第5题第6题其它可参考代…...

嵌入式面试/笔试C相关总结

1、存储 单片机端编译后分为code ro rw zi几个区域,其中code是执行文件,ro(read only)只读区域,存放const修饰常量、字符串。rw(read write)存放已初始化变量。zi存放未初始化变量。编译完成后bin大小为coderorw。运行时所需内存为rwzi。 在电…...

支付宝使用OceanBase的历史库实践分享

为解决因业务增长引发的数据库存储空间问题,支付宝基于 OceanBase 数据库启动了历史库项目,通过历史数据归档、过期数据清理、异常数据回滚,实现了总成本降低 80%。 历史数据归档:将在线库(SSD 磁盘)数据归…...

accelerate 分布式技巧(一)

accelerate分布式技巧 简单使用 Accelerate是一个来自Hugging Face的库,它简化了将单个GPU的PyTorch代码转换为单个或多台机器上的多个GPU的代码。 Accelerate精确地抽象了与多GPU/TPU/fp16相关的模板代码,并保持Pytorch其余代码不变。 import torchim…...

密码找回安全

文章目录 密码找回安全任意秘密重置 密码找回安全 用户提交修改密码请求;账号认证:服务器发送唯一ID (例如信验证码)只有账户所有者才能看的地方,完成身份验证;身份验证:用户提交验证码完成身份验证;修改密码:用户修改密码。 任意秘密重置 登录metinfo4…...

Spring Boot + Vue的网上商城之商品管理

Spring Boot Vue的网上商城之商品管理 在网上商城中,商品管理是一个非常重要的功能。它涉及到商品的添加、编辑、删除和展示等操作。本文将介绍如何使用Spring Boot和Vue来实现一个简单的商品管理系统。 下面是一个实现Spring Boot Vue的网上商城之商品管理的思路…...

B站:提高你的词汇量:如何用英语谈论驾驶

视频链接:提高你的词汇量:如何用英语谈论驾驶_哔哩哔哩_bilibili 英文音标中文hood/hʊd/n. 汽车的引擎盖go over仔细检查;认真讨论;用心思考There are plenty of videos go over this.有很多关于这个的视频unlockvt. 发现;揭开&…...

大前端面试注意要点

前端面试:从IT专家角度全面解析 在数字时代,前端开发工程师的角色变得越来越重要。随着网站和应用程序的复杂性和交互性越来越高,对具有专业技能的前端开发人员的需求也在不断增长。对于正在寻找前端开发职位的开发者,或者正在寻…...

稻盛和夫-如是说(读书笔记)

本书解答的核心问题: “今天,我们需要的不是短期有效的处方。作为人,何谓正确?作为人,应该如何度过人生?这才是一切问题的根源。 有几个要点和认知比较深的地方谈一谈。 1、利他 类似于阳明心学&#xff0…...

Jmeter是用来做什么的?

JMeter是一个开源的Java应用,主要用于性能测试和功能测试。它最初由Apache软件基金会设计用于测试Web应用程序,但现在已经扩展到其他测试功能。JMeter的主要功能如下: 性能测试:性能测试是JMeter的核心功能,主要分为两…...

Docker基础教程

Docker基础教程 Docker简介 Docker基本操作 Docker应用 Docker自定义镜像 Docker compose 为什么使用DockerDocker简介安装DockerDocker的中央仓库Docker镜像操作Docker容器操作准备一个web项目创建MySQL容器创建Tomcat容器将项目部署到TomcatDocker数据卷DockerfileDock…...

Linux命令200例:who用于显示当前登录到系统的用户信息

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师&#xff0…...

HGDB-修改分区表名称及键值

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:N/A 版本:4.5.7 文档用途 使用存储过程拼接SQL,修改分区名称、分区键值、并重新加入主表,适用于分区表较多场景。 详细信息 说明:本文档为测试过程&#xff1…...

1分钟了解音频、语音数据和自然语言处理的关系

机器学习在日常场景中的应用 音频、语音数据和自然语言处理这三者正在不断促进人工智能技术的发展,人机交互也逐渐渗透进生活的每个角落。在各行各业包括零售业、银行、食品配送服务商)的多样互动中,我们都能通过与某种形式的AI(…...

线性代数的学习和整理20,关于向量/矩阵和正交相关,相似矩阵等

目录 1 什么是正交 1.1 正交相关名词 1.2 正交的定义 1.3 正交向量 1.4 正交基 1.5 正交矩阵的特点 1.6 正交矩阵的用处 1 什么是正交 1.1 正交相关名词 orthogonal set 正交向量组正交变换orthogonal matrix 正交矩阵orthogonal basis 正交基orthogonal decompositio…...

OpenCV之ellipse函数

ellipse函数用来在图片中绘制椭圆、扇形,有两个重载函数。 函数原型1: void cv::ellipse( InputOutputArray img,Point center,Size axes,double angle,double startAngle,double …...

git快速查看某个文件修改的所有commit

1. git blame file git blame 可以显示历史修改的每一行记录,有时候我们只想了解某个文件一共提交几次commit,只显示commit列表,这种方式显然不满足要求。 2.git log常规使用 (1)显示整个project的所有commit (2)显示某个文件的所有commit 这是git log不添加参数的常规…...

百度网盘直链解析工具:3分钟突破限速实现满速下载

百度网盘直链解析工具:3分钟突破限速实现满速下载 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾为百度网盘的下载速度而烦恼?非会员用户经常…...

Python自动化Excel数据抓取:OpenClaw技能实战指南

1. 项目概述:从Excel表格到智能数据抓取如果你每天的工作都离不开Excel,并且经常需要从各种网页、文档甚至PDF里手动复制粘贴数据,然后费劲地整理到表格里,那你一定对“Excel大师”这个称号既向往又头疼。我们总希望Excel能更“聪…...

乌尔都语语音合成落地难?揭秘ElevenLabs未公开的ur-PK语言代码陷阱与ISO 639-3双标适配规范(仅限首批127家认证开发者知晓)

更多请点击: https://intelliparadigm.com 第一章:乌尔都语语音合成落地难?揭秘ElevenLabs未公开的ur-PK语言代码陷阱与ISO 639-3双标适配规范(仅限首批127家认证开发者知晓) ElevenLabs 官方文档中仅标注 ur 为乌尔…...

本地化AI代码助手LLMDog:模块化框架与开源模型集成实践

1. 项目概述:一个为开发者设计的本地化AI代码助手最近在GitHub上闲逛,发现了一个挺有意思的项目叫“LLMDog”,作者是doganarif。乍一看这个名字,可能会联想到“AI狗”或者某种宠物,但它的全称其实是“Large Language M…...

Python数据聚合抓取工具:从配置化引擎到实战避坑指南

1. 项目概述:一个多功能的“聚合爪”工具最近在GitHub上闲逛,发现了一个名字挺有意思的项目:al1enjesus/polyclawster。这个名字拆开看,“poly”代表多,“clawster”听起来像是“claw”(爪子)和…...

基于PWM舵机与NeoPixel的万圣节互动蝙蝠制作全解析

1. 项目概述:一个会动的万圣节蝙蝠又快到万圣节了,想给家里的装饰来点不一样的“活物”吗?每年都摆静态的南瓜灯和蜘蛛网,总觉得少了点气氛。今年我琢磨着,不如自己动手做一个能扑腾翅膀、眼睛还会发光的机械蝙蝠&…...

Helm-Git插件:无缝集成Git与Helm,实现Kubernetes Chart的GitOps部署

1. 项目概述:Helm与Git的桥梁 如果你和我一样,长期在Kubernetes生态里打转,那你对Helm一定不陌生。作为Kubernetes的包管理器,它用Chart这个概念,把复杂的应用部署打包得井井有条。但不知道你有没有遇到过这样的场景&…...

PyTorch实战:手把手教你实现DCNv2可变形卷积(附完整代码与避坑指南)

PyTorch实战:手把手教你实现DCNv2可变形卷积(附完整代码与避坑指南) 当你在处理计算机视觉任务时,是否遇到过这样的困扰:传统卷积神经网络对物体几何变换的适应性有限,导致模型在复杂场景下的表现不尽如人意…...

基于RK3568核心板的智能家居控制器:从硬件选型到软件架构实战

1. 项目概述:当智能家居控制器遇上国产高性能核心板最近在做一个智能家居中控的案子,客户对性能、成本和本地化能力要求都比较高。选型阶段,我们团队把市面上主流的几款ARM核心板都摸了一遍,从传统的树莓派CM4到全志、瑞芯微的方案…...

【深度解析】Qwen 3.6 vs Gemma 4:本地大模型时代,如何选对“日常开发模型”

摘要: 开源权重模型正在快速逼近闭源模型能力边界。本文结合 Qwen 3.6 与 Gemma 4 的实际案例,从架构、上下文、显存、基准测试到落地场景,拆解本地大模型选型逻辑,并给出可直接运行的 Python 调用示例。 背景介绍 近两年&#xf…...