Java常用类---包装类

news2024/9/22 23:16:33

包装类

包装类简介

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.coloradmin.cn/o/1369267.html

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

相关文章

类与对象中篇

前言 在上篇我们讲解了类与对象的基础框架,中篇我们将讲解类与对象的基本内容,即类的六个默认成员函数。 一、类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 问题: 空类中真的什么都没有吗? 答案是&a…

解读 Sobit v2:铭文资产跨链更注重安全、易用性

铭文市场的发展正在从早期的“无序”进入到“有序”阶段,我们看到从 12 月份以来,比特币生态内的多个应用纷纷宣布获得融资。这表明,目前仍旧有大量的资金有意向铭文领域,同样铭文赛道新一轮浪潮或许正在酝酿。 另一方面&#xff…

HarmonyOS 编写副标题 解决 ubTitle 可能淘汰问题

目前 harmonyos 中 title属性目前用的还正常 但是ubTitle副标题 会提示我们 可能要淘汰了 虽然说 我们目前 强行用 还是可以生效 但可能 哪天版本更新移除了这个属性 代码就报错了 我们可以通过Builder 来写这个副标题 和 标题 Entry Component struct Index {build() {Row(…

ssm基于WEB的文学网的设计与实现+vue论文

基于WEB的文学网的设计与实现 摘要 如今,科学技术的力量越来越强大,通过结合较为成熟的计算机技术,促进了学校、医疗、商城等许多行业领域的发展。为了顺应时代的变化,各行业结合互联网、人工智能等技术,纷纷开展了管…

Linux的网络配置命令和网络设置实操

目录 一、网路命令 1.ifconfig 2.hostname 3.route 4.netstat 5.ss(socket statistics) 6.ping 7.nslookup 8.tcpdump 二、实操 1.单个网卡修改 2.双网卡配置 3.bond网卡绑定 一、网路命令 查看Linux基础的网络设置 网关route -nIP地址ifc…

python进阶 -- 日志装饰器详解

日志 日志:记录程序运行的时候,出现的问题,或者说验证流程是否正常 在实际工作中,python的脚本命令一般是放在服务器执行的linux系统 日志其实就是记录程序运行时出现的问题、或者正常的打印,协助出现问题的时解决排查…

[书生·浦语大模型实战营]——基于 InternLM 和 LangChain 搭建你的知识库

0. 背景知识 0.1 InternLM InternLM 是一个开源的轻量级训练框架,旨在支持大模型训练而无需大量的依赖。通过单一的代码库,它支持在拥有数千个 GPU 的大型集群上进行预训练,并在单个 GPU 上进行微调,同时实现了卓越的性能优化。…

分析一个项目(微信小程序篇)二

目录 首页: 发现: 购物车: 我的: 分析一个项目讲究的是如何进行对项目的解析分解,进一步了解项目的整体结构,熟悉项目的结构,能够知道每个组件所处在哪个位置,发挥什么作用。 接…

CRM系统是否适合企业,有哪些判断标准?

现如今,以客户为中心不再是一句空话,哪个企业能与客户建立长久的关系,那它就能获得业绩的增长。CRM管理系统的初衷就是维护客户关系,通过深入了解客户,提高转化率,并推动业绩增长。企业在选型时&#xff0c…

游戏引擎巨头Unity 裁员 25%;章泽天净资产600亿;恒大汽车刘永灼被抓;抖音将“抖币”更名为“钻石”;董宇辉新账号将于今晚首播

今日精选 • 游戏引擎巨头 Unity 计划裁员 25%,去年底曾关闭全球多处办公室• 恒大汽车刘永灼被抓,股价闪崩20%,刚丢35亿救命钱• 抖音将“抖币”更名为“钻石”• 章泽天登胡润财富榜:净资产600亿• 董宇辉新账号未开播已有400万…

React Native集成到现有原生应用

本篇文章以MacOS环境开发iOS平台为例,记录一下在原生APP基础上集成React Native React Native中文网 详细介绍了搭建环境和集成RN的步骤。 环境搭建 必须安装的依赖有:Node、Watchman、Xcode 和 CocoaPods。 安装Homebrew Homebrew是一款Mac OS平台下…

【QT-UI】

1.使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 #include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), …

36-javascript输出方式,弹框:普通,confirm弹框,prompt弹框,控制台输出:普通,warm,error

1.页面打印 <body><p>你真是一个小机灵鬼</p><script>// 页面打印document.write("打印内容");</script> </body> 2.覆盖文档 <body><p>你真是一个小机灵鬼</p><script>// 覆盖文档window.onload f…

TinkerBoard2跑BuildRoot

我的主板没有EMMC&#xff0c;只能烧录到TF卡 3.1、格式化TF卡 使用$ sudo fdisk -l查看设备&#xff0c;找到对应的设备路径&#xff0c;如/dev/sdd 使用$ sudo fdisk /dev/sdd命令格式化 d //删除分区 n //新建分区 3.2、使用SD_Firmware_Tool烧录固件 我用的是SD_Firmwar…

Spring——Spring整合MyBatis

Spring整合MyBatis 1.创建工程 1.1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…

R语言频率分布直方图绘制教程

本篇笔记分享R语言绘制直方图的方法&#xff0c;通过多种展示风格对数据进行可视化&#xff0c;主要用到ggplot、ggpubr等包。 什么是直方图&#xff1f; 直方图(Histogram)&#xff0c;又称质量分布图&#xff0c;是一种统计报告图&#xff0c;由一系列高度不等的柱子表示数…

前端适配750px设计稿

全局引入 (function(doc, win) {const docEl doc.documentElement,resizeEvt orientationchange in window ? orientationchange : resizeconst setFont function() {let clientWidth docEl.clientWidth;if (!clientWidth) return;if (clientWidth > 750) {docEl.styl…

社科院与美国杜兰大学金融管理硕士项目——金融在职人员的当下与未来

随着经济的蓬勃发展和全球化的疾驰&#xff0c;金融行业已稳坐现代经济的心脏位置。在这翻涌的时代浪潮中&#xff0c;金融从业人员的重要性愈发突出&#xff0c;他们不仅是企业的坚实支柱&#xff0c;更是推动经济前行的强大引擎。然而&#xff0c;科技进步和市场变幻的风云也…

深度解析Dubbo的基本应用与高级应用:负载均衡、服务超时、集群容错、服务降级、本地存根、本地伪装、参数回调等关键技术详解

负载均衡 官网地址&#xff1a; http://dubbo.apache.org/zh/docs/v2.7/user/examples/loadbalance/ 如果在消费端和服务端都配置了负载均衡策略&#xff0c; 以消费端为准。 这其中比较难理解的就是最少活跃调用数是如何进行统计的&#xff1f; 讲道理&#xff0c; 最少活跃数…

TSP(Python):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于奖励的决策问题。它是一种无模型的学习方法&#xff0c;通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策&#xff0c;该函数表示在给定状态下采取某个动作所获…