Java常用类---包装类

包装类

包装类简介

Java语言是典型的面向对象编程语言,但是其中的8种基本数据类型并不支持面向对象编程,基本类型数据不具备"对象"的特性,即:没有携带属性以及没有方法可以调用。

为了解决上述问题,java为每种基本类型设计分别设计了对应的类,称为包装类(Wrapper Classes)

基础数据类型类与包装类对应关系,如下图所示。

基本数据类型对应包装类
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble
booleanBoolean

注:每个包装类的对象可以封装一个相应的基本类型数据,并提供了其他一些有用的方法。包装类对象一经创建,其内容(所封装的基本类型数据值)不可改变。所有的包装类都是抽象类Number的子类。

基本类型和对应的包装类可以相互转化:

  • 从基本类型向对应的包装类转换称为装箱

    eg:char包装成为Character类的对象。

  • 从包装类向对应的基本类型转换称为拆箱

    eg:Character类的对象重新简化为char。

手动装箱和拆箱

以int和Integer为例,可以通过Integer类的构造方法(构造器)将int装箱,通过Integer类的intValue方法将Integer拆箱。手动装箱和拆箱如下图所示。

Integer类中常用方法:

  1. 静态paseInt方法,可以将字符串转化为整数,方法定义如下图所示。

    其中,s参数为要转换的字符串,radix为要转化字符串中数的进制,默认进制为十进制。

    方法调用效果,如下图所示。

    注:图中radix为要转化字符串中数的进制。即,将一个指定进制为radix的字符串s解析为一个十进制整数。

    补充:有些字符串无法通过此方法转换为整数,如下图所示。

    很明显"123abc"等字符串的数字内容并不是十进制的数字类型,故不能转化为整数形式。

  2. 静态toString方法,可以将整数转化为字符串,方法定义如下图所示。

    其中,i参数为要转换的整数,radix参数为该整数要转换成radix进制的字符串,默认进制为十进制。

    方法调用效果,如下图所示。

    注:图中radix为转化后字符串中数的进制。即,将一个数i转化为一个指定进制数为radix的字符串。

    补充:直接在整数后加空字符串也可将整数转换为字符串形式。如下图所示。

自动装箱和拆箱

在Java1.5之后,可进行自动拆箱装箱,即在进行基本数据类型和对应的包装类转换时,系统将自动进行,方便了书写。如下图所示。

其中,编译器会根据所写语法,决定是否进行拆箱装箱动作,如下式所示。

//装箱
Integer i = 100;
//上式等价于下式的手动装箱
Integer i = new Integer(100);
​
//拆箱
int j = i;//i如前式,已装箱
//上式等价于下式的手动拆箱
int j = i.intValue();

注:自动功能也存在弊端,如下式所示。

Integer i = null;
int j = i;

这段代码在编译期间是合法的,但运行时会有错误。因为在拆箱时,需要调用Integer对象中的intValue方法,但变量i没有任何实例对象,故不能使用intValue方法。所以上述式子运行时会产生NullPointerException错误。如下图所示。

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

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

相关文章

strtok函数的介绍

_str指被分解的字符串 delim指分隔符字符串 返回类型是指针 strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符…

【论文阅读笔记】Dichotomous Image Segmentation with Frequency Priors

1. 论文介绍 Dichotomous Image Segmentation with Frequency Priors 基于频率先验的二分图像分割 2023年发表在IJCAI Paper Code 2. 摘要 二分图像分割(DIS)具有广泛的实际应用,近年来得到了越来越多的研究关注。本文提出了解决DIS与信息…

vue项目 Network: unavailable的解决办法

vue项目npm run serve 后,只有localhost访问,network不能访。 看到网上说有三种情况: 多个网卡原因:打开网络共享中心,把多余的网络禁用掉,只留一个 在中配置host及public 系统环境变量问题…

Redis高并发高可用(主从复制、哨兵)

复制 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis 副本。复制功能是高可用Redis的基础,哨兵和集群都是在复制的基础上实现高可用的。 默认…

实战:使用docker容器化服务与文件挂载-2

接着上文,演示Elasticsearch 和 Kibana 的安装,并讲解文件挂载 Elasticsearch of Docker (Kibana) 1、Elasticsearch 安装 ElasticSearch 使用 Docker 安装:https://www.yuque.com/zhangshuaiyin/guli-mall/dwrp5b 1.…

php实现支付宝商户转账

目录 一:背景介绍 一:准备工作 三:代码实现 一:背景介绍 最近工作中,要用到支付宝的商家转账功能,用php代码实现,网上找的内容,有些是老版本的实现,有些是调用sdk&am…

【经验分享】如何看论文的分区、SCI检索号、EI检索号等信息

0 前言 一般而言,被SCI检索的论文,都会同时被EI检索。我们以论文《Learning Disentangled Representation for Multimodal Cross-Domain Sentiment Analysis》为例,讲解一下如何查询论文的各项信息。 我们首先百度这个论文 可以看到它是发表…

Android性能优化系列——内存优化

内存,是Android应用的生命线,一旦在内存上出现问题,轻者内存泄漏造成App卡顿,重者直接crash,因此一个应用保持健壮,要做好内存的使用和优化。网上有很多讲JAVA内存虚拟机的好文章,我就不赘述了。…

SQL必知必会笔记(9~12章)

第九章 汇总数据 1、聚集函数用来进行记录数据的加工,然后再进行返回。 2、SQL的聚集函数: 函数 说明 AVG() 返回某列的平均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值之和 3、AVG()函数 A…

想要成为机器学习领域的高手吗?这里有五本必读免费书,订阅周报发链接 (下)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Azure AI 内容安全Content Safety Studio实战

Azure AI Content Safety 检测应用程序和服务中用户生成和 AI 生成的有害内容。 Azure AI 内容安全包括文本和图像 API,可用于检测有害材料。 交互式 Content Safety Studio,可用于查看、浏览和试用用于检测不同形式的有害内容的示例代码。 关注TechLead…

项目框架构建之6:编写通用主机基础类

本文是“项目框架构建”系列之6,本文介绍如何编写通用主机基础类。 1.为了构建通用主机,我们先创建主机接口IAppHost接口 接口需要有配置项,我们定义为HostConfiguration,比如我们希望用户可以设定他的工作目录,就可…

深度学习|4.7 参数和超参数

4.7 参数和超参数 超参数是指需要用户提前设置好的参数,这些超参数最终会影响到参数的数值(相当于参数是动态调整得到的) 学习率的选取 最优学习率应该能使得代价函数趋于一个较低的常数。

接口工具Apifox

最近发现一款接口测试工具--apifox,我我们很难将它描述为一款接口管理工具 或 接口自测试工具。 官方给了一个简单的公式,更能说明apifox可以做什么。 Apifox Postman Swagger Mock JMeter Apifox的特点: 接口文档定义: Apif…

CSS 发光输入框动画

<template><view class="content"><input placeholder="请输入..." class="input" /> </view> </template><script></script><style>/* 设置整个页面的背景颜色为 #212121 */body{background-c…

react native中使用tailwind并配置自动补全

使用的第三方库是tailwind-react-native-classnames&#xff0c;同类的也有tailwind-rn&#xff0c;但是我更喜欢前者官方demo&#xff1a; import { View, Text } from react-native; import tw from twrnc;const MyComponent () > (<View style{twp-4 android:pt-2 b…

【办公技巧】excel中设置选项按钮的方法

大家是否会遇到需要勾中选项的情况&#xff0c;我们可以在电子表格中制作出可以勾选、选中的选项按钮&#xff0c;今天我们一起学习一下设置方法。 首先&#xff0c;我们需要先在excel工具栏中添加一个功能模块&#xff1a;开发工具 依次点击excel中的文件 – 选项 – 自定义…

第二百五十三回

文章目录 概念介绍使用方法示例代码 概念介绍 进度条是常用的组件之一&#xff0c;它主要用来显示某种动作的完成进度。Flutter提供了多种进度条组件&#xff0c;常用的是水平进度条&#xff1a;LinearProgressIndicator&#xff1b;圆形进度条 :CircularProgressIndicator和R…

2023年,To B资本航船走向哪了?

国内To B领域在去掉泡沫、结束资本狂欢之后&#xff0c;投资决策愈加理性。但与此同时&#xff0c;下滑的步伐正在放慢&#xff0c;交易数量和金额的降低逐渐放缓&#xff0c;市场逐渐走向稳定。 作者|斗斗 编辑|皮爷 出品|产业家 2023年&#xff0c;在一众业内人士的眼中&…

文件系统与日志分析

一&#xff0c;文件系统 &#xff08;一&#xff09;inode 和block概述 1&#xff0c;文件数据包括元信息与实际数据 2&#xff0c;文件存储在硬盘上&#xff0c;硬盘最小存储单位是“扇区”&#xff0c;每个扇区存储512字节 3&#xff0c;block (块) 连续的八个扇区组成一…