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

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对象

相关文章:

Java常用类--包装类

包装类 一方面出于性能方面的考虑,java为数值使用基本类型,而不是对象。基本类型不是对象层次的组成部分,它们不继承Object。 另一方面有时需要创建表示基本类型的对象,例如集合类只处理对象。为了在类中存储基本类型,…...

SpringMvcの拦截器全局异常处理

一、拦截器 我们在网上发贴子的时候如果没有登录,点击发送按钮会提示未进行登录,跳转到登录页面。这样的功能是如何实现的。 1、 拦截器的作用 Spring MVC 的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理…...

JVM虚拟机的组成

一、为什么要学习 JVM ? 1. “ ⾯试造⽕箭,⼯作拧螺丝” , JVM 属于⾯试官特别喜欢提问的知识点; 2. 未来在⼯作场景中,也许你会遇到以下场景: 线上系统突然宕机,系统⽆法访问,甚⾄直…...

探索CSS clip-path: polygon():塑造元素的无限可能

在CSS的世界里,clip-path 属性赋予了开发者前所未有的能力,让他们能够以非传统的方式裁剪页面元素,创造出独特的视觉效果。其中,polygon() 函数尤其强大,它允许你使用多边形来定义裁剪区域的形状,从而实现各…...

【华为OD机试B卷】单词接龙(C++/Java/Python)

题目 题目描述 单词接龙的规则是: 可用于接龙的单词首字母必须要前一个单词的尾字母相同;当存在多个首字母相同的单词时,取长度最长的单词,如果长度也相等,则取字典序最小的单词;已经参与接龙的单词不能重复使用。现给定一组全部由小写字母组成单词数组,并指定其中的一个…...

项目实训-vue(十七)

项目实训-vue(十七) 文章目录 项目实训-vue(十七)1.概述2.问诊类型3.问诊时间统计4.看诊时间统计 1.概述 本篇博客将记录我在数据统计页面中的工作。因为项目并未实际运行,因此我们拟定了一些数据,并构建了…...

Android10 SystemUI系列 需求定制(二)隐藏状态栏通知图标,锁屏通知,可定制包名,渠道等

一、前言 SystemUI 所包含的界面和模块比较多,这一节主要分享一下状态栏通知图标和通知栏的定制需求:隐藏状态栏通知图标,锁屏通知,可定制包名,渠道等 来熟悉一下Systemui。 二、准备工作 按照惯例先找到核心类。这里提前说一下,这个需求的修改方法更多,笔者这里也只…...

Linux:RAID磁盘阵列

目录 一、RAID(磁盘阵列) 1.1、概念 1.2、RAID 0(条带化存储) 1.3、RAID 1(镜像存储) 1.4、RAID 5 1.5、RAID 6 1.6、RAID 10 (先做镜像,再做条带) 二、创建RAID 2.1、建立RAID 0 …...

MongoDB和AI 赋能行业应用:零售

欢迎阅读“MongoDB 和 AI 赋能行业应用”系列的第三篇。 本系列重点介绍 AI 应用于不同行业的关键用例,涵盖制造业和汽车行业、金融服务、零售、电信和媒体、保险以及医疗保健行业。 利用生成式 AI 技术(Gen AI),零售商可以创造…...

MQ~消息队列能力、AMQP协议、现有选择(Kafka、RabbitMQ、RocketMQ 、Pulsar)

消息队列 消息队列看作是一个存放消息的容器,当我们需要使用消息的时候,直接从容器中取出消息供自己使用即可。由于队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的。 常⽤的消息队列主要这 五 种,分别…...

开源网安参与编制的《代码大模型安全风险防范能力要求及评估方法》正式发布

​代码大模型在代码生成、代码翻译、代码补全、错误定位与修复、自动化测试等方面为研发人员带来了极大便利的同时,也带来了对安全风险防范能力的挑战。基于此,中国信通院依托中国人工智能产业发展联盟(AIIA),联合开源…...

【树状数组 队列】1505. 最多 K 次交换相邻数位后得到的最小整数

本文涉及知识点 树状数组 队列 LeetCode1505. 最多 K 次交换相邻数位后得到的最小整数 给你一个字符串 num 和一个整数 k 。其中,num 表示一个很大的整数,字符串中的每个字符依次对应整数上的各个 数位 。 你可以交换这个整数相邻数位的数字 最多 k 次…...

【附精彩文章合辑】当谈到程序的“通用性”与“过度设计”的困境时,我们可以通过一些具体的例子来更直观地阐述这些解决方案

当谈到程序的“通用性”与“过度设计”的困境时,我们可以通过一些具体的例子来更直观地阐述这些解决方案。以下是一些示例: 一、明确需求与目标 例子1:在线购物平台 需求分析:平台需要支持用户注册、登录、浏览商品、下单购买、…...

Word中删除空白页

① 文字后面出现的空白页 把鼠标放在空白页的位置,按住Ctrl Delete即可。 ② 表格后面的空白页 把鼠标放在空白页左侧,直到出现一个空白的箭头,点击一下选中空白页,然后再Ctrl D,打开字体选项卡,在效果中…...

30.Netty进阶-黏包半包解决方案-短链接

客户端发送一次完整的消息,然后就把与服务端的链接断开。服务端读到的结果就是-1。 服务器就知道 从链接建立到断开,发送的数据是一条完整的数据。 客户端代码 package com.xkj.nian;import io.netty.bootstrap.Bootstrap; import io.netty.buffer.ByteBuf; import io.net…...

斜堆(数据结构篇)

数据结构之斜堆 斜堆 概念: 斜堆是左式堆的自调节形式,斜堆和左式堆间的关系类似于伸展树和AVL树间的关系斜堆是具有堆序性的二叉树,但是不存在对树的结构限制不同于左式堆,关于任意节点的零路径长的任何信息都不保留&#xff…...

河南大学24计算机考研数据,有三个学院招收计算机相关专业,都是考的408!

河南大学(Henan University),简称“河大”,是河南省人民政府与中华人民共和国教育部共建高校,国家“双一流”建设高校,入选国家“111计划”、中西部高校基础能力建设工程、卓越医生教育培养计划、卓越法律人…...

ubuntu离线安装docker导入镜像

docker安装包 准备工作 1.准备一个docker.service文件 内容如下: [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target[Service] Typenoti…...

鸿蒙原生应用元服务开发-位置服务申请权限

申请位置权限开发指导 场景概述 应用在使用位置服务系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限。 系统提供的定位权限有: ohos.permission.LOCATION:用于获取精准位置…...

基于SpringBoot的“智慧食堂”管理系统设计与实现

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBootVue 工具:IDEA/Eclipse、Navicat、Maven 系统展示 首页 用户管理界面 菜品…...

Kafka Connect集群管理可视化界面:高效实现多环境连接器配置实战指南

Kafka Connect集群管理可视化界面:高效实现多环境连接器配置实战指南 【免费下载链接】kafka-connect-ui Web tool for Kafka Connect | 项目地址: https://gitcode.com/gh_mirrors/ka/kafka-connect-ui 在Kafka生态系统中,连接器管理一直是数据…...

终极指南:如何使用Docker Stacks与Git Hooks实现自动化代码质量检查

终极指南:如何使用Docker Stacks与Git Hooks实现自动化代码质量检查 【免费下载链接】docker-stacks Ready-to-run Docker images containing Jupyter applications 项目地址: https://gitcode.com/gh_mirrors/do/docker-stacks Docker Stacks是一个提供现成…...

2025版等离子体期刊分区解析:从PRL到PPAP的投稿指南

1. 2025版等离子体期刊分区概览 对于从事等离子体研究的科研人员来说,选择合适的期刊投稿是研究成果传播的关键一步。2025版中科院期刊分区将等离子体相关期刊划分为三个主要层级,每个层级都有其独特的定位和特点。 先说说最顶级的中科院一区期刊。这个层…...

字节MidScene 手机自动化

1 框架介绍 Midscene 是一个可通过自然语言描述目标和步骤,自动规划并操作用户界面、执行自动化的框架。 框架地址:https://midscenejs.com/zh/支持端:Android、iOS、鸿蒙、桌面、浏览器核心特性 自然语言控制跨平台自动化同时支持智能执行…...

什么是 Harness Engineering?把 Prompt、Workflow、Eval 串成系统的那层骨架

点击上方 前端Q,关注公众号回复加群,加入前端Q技术交流群上一篇我们先把问题抛出来了: 为什么现在大家都在聊 Agent、Workflow、AI Coding,可真正决定系统上限的,往往不是模型本身,而是模型外那层工程骨架。…...

LightGBM实战:极速梯度提升框架的多变量时序预测深度解析

LightGBM实战:极速梯度提升框架的多变量时序预测深度解析 【免费下载链接】LightGBM microsoft/LightGBM: LightGBM 是微软开发的一款梯度提升机(Gradient Boosting Machine, GBM)框架,具有高效、分布式和并行化等特点&#xff0c…...

从报错到解决:Pycharm中Tensorflow2.x与1.x代码兼容性问题全解析

从报错到解决:Pycharm中Tensorflow2.x与1.x代码兼容性问题全解析 在深度学习领域,TensorFlow作为最受欢迎的框架之一,其版本迭代带来的变化常常让开发者感到头疼。特别是从TensorFlow 1.x升级到2.x版本后,许多核心API发生了重大改…...

告别Visio!用Text Flow三分钟搞定纯文本流程图(附实战案例)

用纯文本革命:Text Flow如何三分钟重塑技术文档流程图 在代码注释里直接插入流程图,在Markdown文件中无缝嵌入架构图,无需切换工具就能完成专业图表——这曾是许多开发者的奢望。传统流程图工具如Visio、Draw.io虽然功能强大,但存…...

nli-distilroberta-base在数据库智能查询中的应用:自然语言转SQL实战

nli-distilroberta-base在数据库智能查询中的应用:自然语言转SQL实战 1. 引言:当自然语言遇上数据库查询 "帮我找出上个月销售额超过10万的产品"——这样的需求如果能让数据库直接理解该多好?传统SQL查询需要专业技术人员编写复杂…...

Google Test进阶玩法:用测试夹具重构你的C++项目(CLion实战篇)

Google Test进阶实战:用测试夹具重构复杂C项目的工程化实践 当你的C项目从几百行扩展到几万行代码时,那些曾经简单的单元测试开始变得力不从心。测试用例之间出现隐蔽的状态依赖,setup代码重复率飙升,而每次运行测试套件的时间越来…...