Java常用类--包装类

包装类

        一方面出于性能方面的考虑,java为数值使用基本类型,而不是对象。基本类型不是对象层次的组成部分,它们不继承Object。

        另一方面有时需要创建表示基本类型的对象,例如集合类只处理对象。为了在类中存储基本类型,需要将基本类型包装到一个类中,为此Java为8种基本数据类型分别提供了对应的包装类。本质上这些类将基本类型包装到一个类中,因此通常将它们称为类型包装器。包装器类位于Java.lang包中。

八个包装类

Byte  Short  Integer  Long  Float  Double  Character  Boolean

Character包装器

Character是char类型的包装器。Character的构造函数为:

Character(char ch)

其中,ch指定了将由即将创建的Character对象包装的字符。

为了获取Character对象中的char数值,可以调用charValue(),如下所示:

char charValue( )

该方法返回封装的字符。

Boolean包装器

Boolean是包装boolean值的包装器。它定义了以下构造函数:

Boolean(boolean  boolValue)

Boolean(String  boolString)

        在第一个版本中,boolValue必须是true或false。在第二个版本中,如果boolString包含字符串“true”(大写或小写形式都可以),则新的Boolean对象将为真,否则,将为假。

为了从Boolean对象获取boolean值,可以使用booleanValue(),如下所示:

boolean  booleanValue( )

该方法返回与调用对象等价的boolean型值。

数值类型的包装器类

1、构造器

        所有数值类型包装器都定义了用于从给定数值或数值的字符串表示形式构造对象的构造函数,例如,下面是为Integer定义的构造器:

Integer(int  num)

Integer(String  str)//a123   “123”

如果str没有包含有效的数字值,则会抛出NumberFormatException异常。

2、从包装器对象中提取数值

        最常用类型的包装器是那些表示数值的包装器。包括Byte、Short、Integer、Long、Float以及Double。所有这些数值类型包装器都继承自抽象类Number。Number声明了以不同数字格式从对象返回数值的方法,如下所示:

byte  byteValue( )

double  doubleValue( )

float  floatValue( )

int  intValue( )

long  longValue( )

short  shortValue( )

3、将包装器对象转换成字符串

类型包装器都重写了toString()方法,该方法可以将数值转换成字符串形式。

String  str = Integer.toString(100);

包装类方法(以Byte为例)

Byte a = new Byte();//创建对象,括号内可传参

a.byteValue();//调用对象a的值

a.toString();//将对象a转换为String类型

a.valueof("123");//将传入的字符串转换为byte类型的对象

a.parseByte("456");//将传入的字符串转换为byte类型的值

自动装箱与自动拆箱

        自动装箱是这样一个过程,只要需要基本类型的对象,就自动将基本类型自动封装(装箱)进与之等价的类型包装器中,而不需要明确地构造对象。自动拆箱是当需要时自动抽取(拆箱)已装箱对象数值的过程。不需要调用intValue()或doubleValue()这类方法。

        自动装箱和自动拆箱特性极大地简化了一些算法的编码,移除了单调乏味的手动装箱和拆箱数值操作。它们还有助于防止错误。此外,它们对于泛型非常重要,因为泛型只能操作对象。最后,集合框架需要利用自动装箱特性进行工作。

数值与字符串形式之间的转换

        最常见的编程杂务之一是将数值的字符串表示形式转换成数值。数值类型的包装器类为此提供了相应的方法。例如:

Int类的parseInt()方法

Long类的parseLong()方法

Double类的parseDouble()方法

为了将数值转换成字符串形式,可以调用相应包装类的toString()方法。

说明:

各包装器类以静态方法的形式提供了许多很有用的辅助功能,请查阅帮助文档。

String.valueOf()

Int.toString();

Double.toString();

int I = 100;

String str = I + “”;

字符分类

Character类提供一些静态方法用于判断字符属于哪一类。

static boolean isDigit(char ch)

如果ch是数字,则返回true。

static boolean isLetter(char ch)

如果ch为字母,则返回true。

static boolean isLetterOrDigit(char eh)

如果ch为字母或数字,则返回true。

static boolean isLowerCase(char ch)

如果ch为小写字母,则返回true;

static boolean isUpperCase(char ch)

如果ch为大写字母,则返回true。

static boolean isSpaceChar(char ch)

如果ch为空格字符,则返回true。

static boolean isWhitespace(char ch)

如果ch为空白字符,则返回true。

包装器类中其他常用的常量和方法

Integer.MAX_VALUE//表示int数据类型的最大取值数:2 147 483 647

Integer.MIN_VALUE//表示int数据类型的最小取值数:-2 147 483 648

Integer.SIZE  //长度,多少bit

Integer.valueOf(100);    //根据整数创建Integer对象

Integer. valueOf("100");  //根据字符串创建Integer对象

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

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

相关文章

因为存在技术问题?《幻兽帕鲁》开发商称很难登录Switch

原标题:《幻兽帕鲁》首席执行官:移植Switch平台存在技术难度 易采游戏网6月25日消息:近日,《幻兽帕鲁》的开发商Pocketpair在接受媒体采访时讨论了将游戏移植到任天堂Switch平台的可能性。Pocketpair首席执行官Takuro Mizobe表示&…

fail2ban自动屏蔽之jumpserver

fail2ban是一款实用软件,可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作。 jumpserver是一款开源堡垒机,其拥有一定的防护登录,也可以做登录限制,但是相对于防火…

关于College Essay的8个错误观念盘点

在高校论文撰写界,较大的误会是,College Essay是繁杂的、繁杂的每日任务,你只有根据好多个钟头的痛楚劳动者来进行。喜讯:它是彻底不正确的。 实际上,College Essay非常简单。它不用创造力。它不用风趣。它不用花里胡…

【深度强化学习】如何使用多进程(multiprocessing、pipe)来加速训练

文章目录 实验结果实现思路思路1思路2 进程与线程介绍如何实现multiprocessing、Pipe的范例关于时间对比上的问题代码修改收敛为何不稳定 技巧进程资源抢占问题线程问题cpu和gpu问题 进阶(还没看懂/还没实验)附代码raw代码mul代码 实验结果 实验平台&am…

Vue下载接口返回流的处理

1.下载接口返回流如下: 2.可以写公共方法处理 excelDownload(obj, name Date.now(), suffix xlsx) {//Date.now()获取当前日期const url window.URL.createObjectURL(//Blob是二进制大对象new Blob([obj], { type: application/vnd.ms-excel }))const aDOM docu…

在Visual Studio Code中使用Phi-3模型

更多数字生产力内容,欢迎关注我的公众号“ONE生产力”。 先前的文章中,我们已经介绍使用LM Studio在本地环境中运行Phi-3。LM Studio是一款革命性的桌面应用程序,它允许用户在自己的计算机上本地运行、管理和部署大型语言模型,但有…

工作中常用的java开发stream流处理

本文总结了工作中常用的几类stream流处理方法。 stream流处理List Java Stream流式处理 Stream流 1.stream().map单独处理List中每个元素 示例&#xff1a; List<HjyCommunityDto> dtoList hjyCommunityMapper.queryList(community);List<HjyCommunityVo> voLi…

走近数据变更捕获(CDC):定义、优势和用例

在当今快节奏的数字化环境下&#xff0c;企业需要数据来做出决策、提高运营效率、优化客户体验。然而&#xff0c;获得最新最准确的数据有时并不容易&#xff0c;尤其是当数据来自于多个系统和应用程序时。这时&#xff0c;数据变更捕获&#xff08;Change Data Capture&#x…

内存卡数据移走了怎样恢复?简易步骤与解决方案

随着科技的快速发展&#xff0c;内存卡已成为我们日常生活中不可或缺的一部分&#xff0c;特别是在行车记录仪、手机、相机等设备上。然而&#xff0c;当内存卡中的数据意外移走或删除时&#xff0c;我们往往会感到焦虑和困惑。本文将为您介绍如何简易恢复内存卡中移走的数据&a…

基于SpringBoot+Vue北部湾地区助农平台设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还…

震惊!CURRENT_TIMESTAMP不能乱用

事情发生在签到和查询签到记录. 设置mysql时间默认值为CURRENT_TIMESTAMP可以随系统生成默认时间戳,即生成该数据的时间戳, 但是有些特殊场景要避免由mysql给我们生成默认时间: 1、首先签到成功之后返回给前端, 2、前端收到执行成功之后立马去查询签到记录, 3、发现并没有…

leetcode-17-[235]二叉搜索树的最近公共祖先[701]二叉搜索树中的插入操作[450]删除二叉搜索树中的节点

一、[235]二叉搜索树的最近公共祖先 class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(rootnull){return null;}//左子树if (root.val > p.val && root.val > q.val) {return lowestCommonAncestor(root.left…

智慧校园-实习管理系统总体概述

智慧校园实习管理系统是专为高校、企业和学生设计的一体化数字解决方案&#xff0c;它革新了传统实习管理的方式&#xff0c;通过科技手段促进了实习资源的高效对接与管理。该系统整合了实习信息发布、申请管理、过程监督、评估反馈等多个核心环节&#xff0c;构建了一个无缝连…

钡铼BL101网关6串口Modbus转MQTT优化智慧园区设备互联

BL101网关&#xff1a;优化智慧园区设备互联的关键利器 在当今快速发展的智能化时代&#xff0c;智慧园区管理对于设备之间的高效互联至关重要。钡铼&#xff08;BL101&#xff09;网关作为一款功能强大的Modbus转MQTT设备&#xff0c;不仅支持多种通信协议和硬件接口&#xf…

Excel条件格式的经典用法

目录&#xff1a; 一、自动设置填充颜色 二、设置Excel到期自动销毁 三、隔行自动标记 四、美化表格 五、快速突出显示重复值 六、标记空单元格 七、突出显示前N名单元格数值 八、表格添加新内容自动加边框 一、自动设置填充颜色 1、选择内容 首先我们选中表格的数据…

常微分方程算法之编程示例三(预估-校正法)

目录 一、研究问题 二、C代码 三、计算结果 一、研究问题 本节我们采用预估校正法&#xff08;改进欧拉法&#xff09;求解算例。 预估-校正法的原理及推导请参考&#xff1a; 常微分方程算法之预估-校正法&#xff08;改进Euler法&#xff09;_、改进欧拉法-CSDN博客https…

规则引擎-Aviator 表达式校验是否成立

目录 介绍特性使用更多文献支持 介绍 Aviator是一个轻量级、高性能的Java表达式执行引擎&#xff0c;它动态地将表达式编译成字节码并运行。 特性 支持绝大多数运算操作符&#xff0c;包括算术操作符、关系运算符、逻辑操作符、位运算符、正则匹配操作符(~)、三元表达式(?:…

IDEA services模块无法启动springboot服务(添加了springboot但是为空白)

https://blog.csdn.net/m0_54042402/article/details/117918995 https://blog.csdn.net/qq_46550964/article/details/122235235 Alt8 显示services模块 发现有springboot启动模块&#xff0c;点一下springboot之后&#xff0c;这个模块就消失了 会自动在.idea文件夹下的work…

python一个key可以对应多个值, 字典

import collectionsmy_dict collections.defaultdict(list)my_dict[key1].append(value1) my_dict[key1].append(value2) my_dict[key2].append(value3) my_dict[key2].append(value4)

五十八、openlayers官网示例Map Graticule解析——给地图添加经纬度网格线

这篇没啥好说的&#xff0c;写出来完全是嘲笑一下自己蠢&#xff0c;以及&#xff0c;&#xff0c;&#xff0c;帮大家避个坑。。。。 之前一个项目需要展示这种经纬线&#xff0c;但是我不知道openlayers有这种图层&#xff0c;于是拿canvas画上去的。。。。 很好&#xff0c…