Java中的实用类讲解(中篇)

如果想观看更多Java内容 可上我的个人主页关注我,地址子逸爱编程-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/a15766649633?spm=1000.2115.3001.5343

使用工具 IntelliJ IDEA Community Edition 2023.1.4

使用语言 Java8 

代码能力快速提升小方法,看完代码自己敲一遍,十分有用

目录

1.包装类

1.1 包装类概述 

1.2 包装类类型

1.3 包装类和基本数据类型的对应关系

1.4 包装类和基本数据类型的转换 

1.4.1 基本数据类型转换为包装类 

1.4.2 基本数据类型转换为包装类贯穿示例 

1.4.3 包装类转换为基本数据类型

1.4.4 包装类转换为基本数据类型贯穿示例

1.5 装箱拆箱

1.5.1 装箱拆箱贯穿示例

1.6 包装类的作用

2.日期类


1.包装类

一般使用的的话就只用Integer,如果int值存在null值就使用Integer,不存在使用int就可以了,其他的包装类了解即可;

Java包含八种基本数据类型,同时包含与其对应的包装类,下面将详细介绍包装类的由来和用法;

1.1 包装类概述 

 Java是面向对象的编程语言,但它的基本数据类型是不支持面向对象机制的,不具备对象的特征,它们为程序开发带来了一定的方便性,如可以进行有效、常规的数据处理,但有些时候也会受到一些制约,例如,所有的引用类型的变量都继承了Object类,可以当做Object类型变量使用,但基本数据类型不可以(基本数据类型并没有继承Object),如果方法的参数是Object类型,但实际上需要的数据是类似2、3这样的数值,就比较难处理。

问题:

在以上定义的ArrayList集合中,集合元素为Object类型,但向其中添加基本类型数据时,程序为什么不报错呢?

答案:是代码中使用了包装类。包装类是指将基本数据类型封装到一个类中,也就是将基本类型包装成一个类类型。Java程序设计语言为每一种基本类型都提供了一个包装类,而这些包装类存在于java.lang包中,共有八个包装类,如下所示:

1.2 包装类类型

object(以下都是包装类)
    Boolean
    Number
 Byte Short Integer Long Float Double
    Character

其中,所有的数字类型包装类都继承了Number类,Number是一个抽象类。Number类包装了Byte、Short、Interger、Long、Float、Double等数字类型,并且实现其所定义的方法,这些方法以不同的数字格式返回对象的值。

1.3 包装类和基本数据类型的对应关系

byte
    java.lang.Byte
boolean
    java.lang.Boolean
short
    java.lang.Short
char
    java.lang.Character
int
    java.lang.Integer
long
    java.lang.Long
float
    java.lang.Float
double
    java.lang.Double 

包装类的用途主要由以下两个。

  • 包装类作为和基本数据类型对应的类型存在,方便对象的操作。
  • 包装类包含每种基本数据类型的相关属性,如最大值、最小值等,以及相关的操作方法。

1.4 包装类和基本数据类型的转换 

在不同应用场景中,基本数据类型和包装类间要进行相互转换以完成特定操作,下面详细介绍它们之间相互转换的方法。

1.4.1 基本数据类型转换为包装类 

在Java中,基于基本数据类型数据创建包装类对象通常可以采用如下两种方式:

public Type(type value)
publiv Type(String value) 

这是构造方法;

其中,Type表示包装类,参数type为基本数据类型;

针对每一个包装类,都可以使用关键字new将一个基本数据类型值包装为一个对象。例如,要创建一个Integer类型的包装类对象,可以这样写:

Integer intValue=new Integer(21);
Integer intValue=new Integer("21");

1.4.2 基本数据类型转换为包装类贯穿示例 

运行代码 

运行结果

true+35+男

true+true+false

从以上代码的运行结果可以看出,当试图使用一个字符串来创建Boolean对象时,如果传入的字符串是"true"或不同字母大小写形式(如:"TRue"),则都将创建与true对应的Boolean对象;如果传入其他字符串,则会创建与false对应的Boolean对象。

注意
当试图使用一个字符串来创建Byte、Short、Integer、Double等包装类对象时,如果传入的字符串不能成功转换为对应的基本类型变量,则会引发NumberFormatException异常。
char型数据不能使用第二种形式的构造方法创建Character类型的包装类对象:
除此之外,也可通过调用包装类的valueOf()方法实现从基本数据类型到包装类的转换,可自行查阅API帮助文档学习。

1.4.3 包装类转换为基本数据类型

包装类转换为基本数据类型通常采用如下方法:
public type typeValue()//这是一个方法
其中,type指的是基本数据类型,如IntValue()、charValue()等,相应的返回值为int、char。将包装类对象转换为基本类型数据,代码如下。 

1.4.4 包装类转换为基本数据类型贯穿示例

运行类代码

运行结果

true+35+男

1.5 装箱拆箱

Java基本数据类型变量和包装类对象之间的转换烦琐,从JDK1.5之后提供了自动装箱(Autoboxing)和自动拆箱(AutoUnboxint)功能
    自动装箱
        把基本数据类型变量直接转换为对应的包装类对象,或者转换为Object对象;
    自动拆箱
        与装箱相反,将包装类对象转换为对应的基本数据类型变量;

1.5.1 装箱拆箱贯穿示例

运行类代码 

运行结果

true

35+男 

从以上代码可以看出,当JDK提供了自动装箱/拆箱功能后,大大简化了基本数据类型和包装类相互转换的过程。但是进行自动装箱/拆箱时必须注意类型匹配。例如,Integer对象只能自动拆箱成int变量,不能试图自动拆箱成boolean类型变量;而int变量也只能自动装箱成Integer对象,不能自动装箱成Boolean对象。即使可以赋值给Object对象,也只是利用了java中向上自动转型的特性。 

1.6 包装类的作用

包装类对象只有在基本数据类型需要用对象表示时才使用,包装类并不是用来取代基本数据类型的。

2.日期类

下篇预告:日期类 Random(随机数)类 ,敬请期待吧!!!

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

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

相关文章

AV1:帧内预测(一)

​VP9支持10种帧内预测模式,包括8种角度模式和非角度模式DC、TM(True Motion)模式,AV1在其基础上进一步扩展,AV1帧内预测角度模式更细化,同时新增了部分非角度模式。 扩展的角度模式 AV1在VP9角度模式的基础上进一步扩展&#xf…

CSharp的lambda表达式匿名类扩展方法

c#的lamba表达式 之前已经写过一些关于委托还有事件的文章,今天就来介绍一下lambda表达式。 首先定义需要的函数以及委托 { public delegate void DoNothingDelegate(); public delegate void StudyDelegate(int id, string name);private void DoNothing() {Cons…

蓝桥杯--完全二叉树

import java.util.Scanner;import static java.lang.Math.log;public class top9 {//求树的每一层的和public static void main(String [] args){Scanner scannernew Scanner(System.in);int nscanner.nextInt();int [] arrnew int[n];for(int i0;i<n;i){arr[i]scanner.next…

Android Studio实现内容丰富的安卓志愿者平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号122 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查看岗位 4.浏览新闻&#xff0c; 5.个人中心…

1、Java虚拟机学习-类的生命周期-加载阶段-以及怎样查看方法区中的对象和堆中对象的关联以及静态变量存在什么地方

类的生命周期 其中连接又可以分为3个小阶段 一、加载阶段 1、加载阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息。 渠道: 2、类加载器在加载完类之后&#xff0c;Java虚拟机会将字节码中的信息保存在内存的方法区中。 方法区是虚拟…

使用Vscode连接云进行前端开发

使用Vscode连接云进行前端开发 1、ssh连接腾讯云 本人使用的是腾讯云。 然后vscode,用最新版&#xff0c;插件选择remote ssh&#xff0c;或者remote xxx下载过来。 然后点击远程资源管理器&#xff0c;选择SSH通道 然后输入命令如下。 ssh rootip然后输入密码 腾讯云应该…

Source Insight使用-添加新的文件类型

目录 遇到的问题解决方法结果 遇到的问题 在Source Insight中我们通常查看.c和.h文件&#xff0c;当使用其查看.java 或者.hal等类型文件时&#xff0c;发现找不到 解决方法 以添加.hal文件为例: 选择Options 下面的File Type Options… 选项。 点击左侧的 “C/C Source F…

哈尔滨工业大学 《材料物理》 笔记-3

原内容请参考哈尔滨工业大学何飞教授&#xff1a;https://www.bilibili.com/video/BV18b4y1Y7wd/?p12&spm_id_frompageDriver&vd_source61654d4a6e8d7941436149dd99026962 或《材料物理性能及其在材料研究中的应用》&#xff08;哈尔滨工业大学出版社&#xff09; 量…

YOLOv9改进策略:卷积魔改 | 分布移位卷积(DSConv),提高卷积层的内存效率和速度

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a; YOLOv9如何魔改卷积进一步提升检测精度&#xff1f;提出了一种卷积的变体&#xff0c;称为DSConv&#xff08;分布偏移卷积&#xff09;&#xff0c;其可以容易地替换进标准神经网络体系结构并且实现较低的存…

针对BSV区块链新推出的网络访问规则NAR和警报系统AS的解释与问答

​​发表时间&#xff1a;2024年2月22日 BSV区块链社区团队最近开设了一个Twitter&#xff08;X&#xff09;话题空间&#xff0c;讨论BSV区块链协会最新推出的网络访问规则和警报系统的相关问题。 本次讨论由BSV区块链社区负责人Brett Banfe主持&#xff0c;以便社区成员更好…

vivado 物理优化约束、交互式物理优化

物理优化约束 Vivado Design Suite在物理优化过程中尊重DONT_TOUCH特性。它不在具有这些属性的网络或小区上执行物理优化。要加快网络选择过程中&#xff0c;具有DONT_TOUCH属性的网络经过预过滤&#xff0c;不被考虑用于物理优化。此外&#xff0c;还遵守Pblock分配&#xff…

母亲的奶牛(bfs)

农夫约翰有三个容量分别为 A , B , C A,B,C A,B,C 升的挤奶桶。 最开始桶 A A A 和桶 B B B 都是空的&#xff0c;而桶 C C C 里装满了牛奶。 有时&#xff0c;约翰会将牛奶从一个桶倒到另一个桶中&#xff0c;直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止。 这一过…

Linux常用命令之搜索查找类

1.1find查找文件或目录 1&#xff09;基本语法 find [搜索范围] [ 选项] find -name&#xff1a;按照名字查找 find -user&#xff1a;按用户相关查找 find -size&#xff1a;按照文件大小查找 1.2locate快速定位文件路径 经验技巧&#xff1a;由于locate指令基于数据库进行…

HP Pavilion Laptop 15-eg2xxx原厂Win11系统预装oem系统包

惠普星15青春版笔记本原装出厂Windows11系统镜像下载&#xff0c;恢复出厂开箱状态 链接&#xff1a;https://pan.baidu.com/s/1f4hjwWX0CMDykb_8YXSf-w?pwd0aja 提取码&#xff1a;0aja 适用型号&#xff1a; 15-eg0010TU、15-eg0011TU、15-eg0008TX、15-eg0009TX 15-eg…

金属表面缺陷检测设备通常采用计算机视觉技术和机器学习算法

金属表面缺陷检测是在金属制造过程中非常重要的质量控制步骤。它涉及检测金属表面可能存在的各种缺陷&#xff0c;如裂纹、气泡、凹坑、氧化、斑点等。这些缺陷可能会影响金属制品的性能和质量&#xff0c;因此需要及早发现并进行处理。 目前&#xff0c;金属表面缺陷检测通常采…

从零开始写 Docker(六)---实现 mydocker run -v 支持数据卷挂载

本文为从零开始写 Docker 系列第六篇&#xff0c;实现类似 docker -v 的功能&#xff0c;通过挂载数据卷将容器中部分数据持久化到宿主机。 完整代码见&#xff1a;https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识&#xff1a; …

PriorityQueue集合源码分析

PriorityQueue集合源码分析 文章目录 PriorityQueue集合源码分析前置知识一、字段分析二、构造函数分析三、方法分析四、总结 PriorityQueue 优先级队列&#xff0c;是基于堆的结构来构建的。而堆是基于完全二叉树来实现的&#xff0c;而二叉树除了可以用节点来实现也可以用数组…

elementary OS7 (Ubuntu 22.04)中word文档转化成pdf格式文档

elementary OS7 Ubuntu 22.04中word文档转化成pdf格式 背景目标操作 背景 收到一个word文档&#xff0c;让调整一下排版后转换一下格式&#xff0c;转换成pdf格式&#xff0c;这要是在windows系统下&#xff0c;office可以直接另存为pdf文档&#xff0c;在linux系统下没有offi…

基于Springboot的船运物流管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的船运物流管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

简单对已有云服务器进行linux环境搭建以及共享服务器

前言&#xff1a; 外壳程序&#xff1a;Xshell7 云服务器&#xff1a;华为云 服务器操作系统&#xff1a;centos7 1.云服务的设置&#xff08;这里购买的华为云&#xff0c;阿里腾讯都可以&#xff09; 区域尽量选择距离所处地距离自己最近的区域。镜像这里选择的为centos7.…