Java 中表示整数的包装类Integer(详解)

Integer 是 Java 中的一个类,属于 java.lang 包。

基本概念

        在Java中,Integer是一个类,它封装了一个int类型的值,使得int类型的值可以被当做对象来处理。Integer类提供了许多方法来操作整数值,包括将字符串转换为整数、将整数转换为字符串、比较两个整数值等。Integer类也提供了常量MAX_VALUE和MIN_VALUE,它们表示int类型的最大值和最小值,以及常量TYPE,它表示Integer类所封装的整数类型。

        在Java中,整数类型包括int、short、byte和long,其中int类型是最常用的整数类型。Java还提供了BigInteger类,它可以表示任意长度的整数。BigInteger类提供了许多方法来操作大整数,例如加、减、乘、除、取模等。由于BigInteger类可以处理非常大的整数,因此它在科学计算和加密算法等领域中经常被使用。

创建 Integer 对象

有两种方式创建 Integer 对象:

// 通过构造函数
Integer intValue = new Integer(10);// 通过静态方法 valueOf
Integer anotherValue = Integer.valueOf(20);

自动装箱与拆箱

Java 5 引入了自动装箱(autoboxing)和拆箱(unboxing)机制,使得基本数据类型和其对应的包装类之间的转换更加方便。

// 自动装箱
Integer num = 42;  // 相当于 Integer num = Integer.valueOf(42);// 自动拆箱
int value = num;   // 相当于 int value = num.intValue();

常量池

对于较小的整数值,Integer 类会在内部维护一个常量池,以提高性能和节省内存。范围在(-128~127)

Integer a = 10;
Integer b = 10;
System.out.println(a == b);  // 输出 true

但是,对于较大的整数值,常量池机制不适用,需要使用 new Integer() 创建新的对象。

方法和属性

Integer 提供了许多方法,如 intValue() 用于获取 int 值,compareTo() 用于比较两个 Integer 对象的大小,等等。

MAX_VALUEMIN_VALUEInteger 类的静态属性,分别表示 int 类型的最大值和最小值。

int maxInt = Integer.MAX_VALUE;
int minInt = Integer.MIN_VALUE;

        在Java中,Integer.MAX_VALUEint 类型的最大值,其值为 2,147,483,647。当你尝试对 Integer.MAX_VALUE 进行加1操作时,会发生整数溢出。在Java中,整数溢出会导致数据从最大值溢出到最小值,形成一个循环。具体来说,Integer.MAX_VALUE + 1 的计算结果是 Integer.MIN_VALUE,即 -2,147,483,648

        这是因为 int 类型的范围是 -2^312^31 - 1,当达到最大值后再加1,会回绕到最小值。这种现象称为整数溢出或整数环绕。

异常NumberFormatException

        当字符串无法被解析为整数时,使用 Integer.parseInt() 方法会抛出 NumberFormatException 异常。因此,在解析字符串时,应该使用 try-catch 块捕获异常,或者使用 Integer.parseInt(String s, int radix) 方法指定基数。

try {int parsedValue = Integer.parseInt("123");
} catch (NumberFormatException e) {// 处理异常
}

不可变性

  Integer 类是不可变的,一旦创建就不能更改其值。任何修改 Integer 的操作都会返回一个新的 Integer 对象。

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

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

相关文章

C#中Linq AsEnumeralbe、DefaultEmpty和Empty的使用

Linq是Language Integrated Query的简称,它是微软在.NET Framework 3.5里面新加入的特性,用以简化查询查询操作。以下主要介绍C#中Linq的AsEnumeralbe、DefaultEmpty和Empty操作符。 1、AsEnumeralbe操作符 AsEnumerable操作符可以将一个类型为IEnumer…

ctfshow sql171-179

mysql 先打开我们本地的mysql,可以看到这些数据库 information_schema information_schema 库: 是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息比如数据库名,数据库表, SCHEMATA表: 提供了当前MySQL实例…

Golang 字符串处理汇总

1. 统计字符串长度:len(str) len(str) 函数用于统计字符串的长度,按字节进行统计,且该函数属于内置函数也不用导包,直接用就行,示例如下: //统计字符串的长度,按字节进行统计: str : "golang你好&qu…

​软考-高级-系统架构设计师教程(清华第2版)【第4章 信息安全技术基础知识(P160~189)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第4章 信息安全技术基础知识(P160~189)-思维导图】 课本里章节里所有蓝色字体的思维导图

postgresql实现job的六种方法

简介 在postgresql数据库中并没有想oracle那样的job功能,要想实现job调度,就需要借助于第三方。本人更为推荐kettle,pgagent这样的图形化界面,对于开发更为友好 优势劣势Linux 定时任务(crontab) 简单易用…

tx-前端笔试题记录

目录 目录 1.你最熟悉的前端框架是什么说说你对它的理解。 2.请简单实现一下js对象深度拷贝。 3.CSS 有几种方法实现垂直水平居中?请简要写一下。 4.这段程序执行之后控制台会打印什么内容? 5.下列程序的输出结果是多少?为什么? 6.有ABCDE 五个火车站,单向…

Redhat7设置国内可用yum源

问题: 因为最近安装了redhat7,在使用的时候提示系统未注册订阅,无法使用官方的yum源进行安装软件。为此,我使用centos7国内的yum源替换redhat的官方的yum源实现软件安装。 “This system is not registered with an entitlement …

【PHP常用函数封装】 php 判断两个数组所有的值是否是完全相等

思路:使用array_diff()函数来判断两个数组的值是否完全相等。array_diff()函数用于计算两个或多个数组的差集,如果差集为空,则表示两个数组的值完全相等。 函数isSameValues 判断两个数组所有的值是否是完全相等 function isSameValues($a, …

【2011年数据结构真题】

41题 41题解答: (1)图 G 的邻接矩阵 A 如下所示: 由题意得,A为上三角矩阵,在上三角矩阵A[6][6]中,第1行至第5行主对角线上方的元素个数分别为5, 4, 3, 2, 1 用 “ 平移” 的思想,…

Outlook无法显示阅读窗格

Outlook无法显示阅读窗格 故障现象 Outlook主界面不显示阅读窗格 故障截图 故障原因 阅读窗格被关闭 解决方案 1、打开Outlook - 视图 – 阅读窗格 2、选择“靠右”或者“底部”,正常显示阅读窗格

同济 MBA 携手和鲸课程共建,以数智人才培养持续赋能企业数字化转型

数智化的浪潮席卷全球,我国产业界应如何做出应变?各企业又该如何深化数字化转型?在任重道远的持续探索中,数智人才培养作为企业实现成功转型的关键要素,已然成为大势所趋。 同济大学综合 MBA 项目高度重视工商管理人才…

什么是代理IP池?如何判断IP池优劣?

代理池充当多个代理服务器的存储库,提供在线安全和匿名层。代理池允许用户抓取数据、访问受限制的内容以及执行其他在线任务,而无需担心被检测或阻止的风险。代理池为各种在线活动(例如网页抓取、安全浏览等)提高后勤保障。 读完…

lua 时间差功能概略

简介 在进行程序设计过程中,经常需要对某些函数、某些程序片断从开始运行到运行结束所耗费的时间进行一些量化。这种量化实际上就是计算时间差。 获取函数耗时情景如下: function time_used() --开始计时-- do something at here. --结束计时--时间差&…

基于Python+Django的寻人失物失物招领系统

运行环境 开发语言:Python python框架:django 软件版本:python3.7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:PyCharm/vscode 前端框架:vue.js 项目介绍 寻人失物失物招领系统交流平台的主要使用…

浅析网络协议-HTTP协议

1.HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图…

mybatis-plus全局Update更新策略,和insert插入查询策略

mybatis-plus全局Update更新策略,和insert插入查询策略 从官方文档可知,数据库全局配置策略有三种,分别是查询策略,更新策略,和添加策略 他们的属性: IGNORED 忽略判断,所有字段都进行更新和插入 NOT_NULL只更新和插入非NULL值 NOT_EMPTY 只更新和插入非NULL值且非空字…

【owt】owt-p2p的vs工程构建

owt的p2p代码构建一个静态库 Build started... 1>------ Build started: Project: owtTalkP2P, Configuration: Debug Win32 ------ 1>p2ppeerconnectionchannel.cc 1>g:\webrtc_m98_yjf\src\media\base\codec.h : warning C4819: The file contains a character that…

[RK-Linux] Linux A/B System详解

文章目录 一、配置项二、分区表三、A/B 系统3.1 A/B 数据结构3.2 A/B 启动模式3.2.1 successful-boot3.2.2 reset-retry3.2.3 模式对比3.3 启动流程3.4 验证方法四、系统升级五、分区引导设置5.1 可引导设置5.2 升级分区设置六、SPL 支持 A/B 系统所谓的 A/B System 即把系统固…

MyBatis 反射工具箱:带你领略不一样的反射设计思路

反射是 Java 世界中非常强大、非常灵活的一种机制。在面向对象的 Java 语言中,我们只能按照 public、private 等关键字的规范去访问一个 Java 对象的属性和方法,但反射机制可以让我们在运行时拿到任何 Java 对象的属性或方法。 有人说反射打破了类的封装…

py 脚本发布运行

要发布并运行 Python 脚本,您可以按照以下步骤进行操作: 确保您已经安装了 Python 解释器。您可以在终端或命令提示符中输入 python --version 来检查是否已安装 Python。将您的 Python 脚本保存到一个文件中,例如 my_script.py。将脚本文件…