java integer的范围_java integer的取值范围是什么?

java integer的范围_java integer的取值范围是什么?JavaInteger取值范围Integer类取值和int类型取值一致,取值范围是从-2147483648至2147483647,包括-2147483648和2147483647。但是对于Integer类,java为了提高效率,初始化了-128–127之间的整数对象,因此Integer类取值-128–127的时候效率最高。测试:publicclassIntegertest…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

e1c9c8a5fc2cbdc90bb498b8e61897f8.png

Java Integer取值范围

Integer类取值和 int 类型取值一致,取值范围是从-2147483648 至 2147483647 ,包括-2147483648 和 2147483647。

但是对于Integer类,java为了提高效率,初始化了-128–127之间的整数对象,因此Integer类取值-128–127的时候效率最高。

测试:public class Integertest { public static void main(String[] args) {

System.out.println(“最大取值:” + Integer.MAX_VALUE);

System.out.println(“最小取值:” + Integer.MIN_VALUE);

}

}

输出:最大取值:2147483647 最小取值:-2147483648

拓展知识:

JVM会自动维护八种基本类型的常量池,int常量池中初始化-128~127的范围,所以当为Integer i=127时,在自动装箱过程中是取自常量池中的数值,而当Integer i=128时,128不在常量池范围内,所以在自动装箱过程中需new 128,所以地址不一样。

例:public class IntegerTest {

public static void main() {

Integer i1=127,i2=127;

System.out.println(i1==i2);

Integer i1=128,i2=128;

System.out.println(i1==i2);

}

}

输出结果:true

false

当Integer取值在常量池范围之内,对JVM为了节省空间, 当Integer的值落在-128~127之间时,如i1,i2;此时JVM首先检查是否已存在值为127的Integer对象。如果是,则i1,i2直接是引用已存在对象,即i1 = i52所以判断i1 == i2 为 true。

当超出常量池取值范围,则每次都会新建对象。Integer类中有一个静态内部类IntegerCache,在IntegerCache类中有一个Integer数组,用以缓存当数值范围为-128~127时的Integer对象。

更多web开发知识,请查阅 HTML中文网 !!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/223432.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Spring boot Mybatis 整合(完整版)

    Spring boot Mybatis 整合(完整版)对Mybatis注解方式有兴趣的,可以查看我的另一篇:SpringbootMybatis整合(注解版)注解方式更加简洁简单,极大程度的提高了开发速度。如果大家需要使用更高的版本比如springboot2.0,请参照我最新的博客springboot2.0Mybatis整合(springboot2.0版本)更多干货SpringBoot快速入门SpringB…

  • 用C#制作计算器_基于c51简易计算器设计

    用C#制作计算器_基于c51简易计算器设计在一些问题中有时会用到计算器,今天我们可以用C#做一个简易的计算器用到的开发工具为VisualStudio2019(我用的是2019,其他版本的也可以)1.首先新建一个项目文件.2.在Form1.cs文件(Winform框架基础文件)中添加所用到的控件.3.添加TextBox和ComboBox以及Button控件4.对Button以及ComboBox进行一些简单的设置……

  • ip addr命令设置网关_linux查不到ip地址

    ip addr命令设置网关_linux查不到ip地址删除ip:echo”##########osremovevip”ipaddrdel192.168.56.101/24devbond0labelbond0:1ipaddrdel192.168.165.101/24devbond1labelbond1:1echo”##########osremovephyip”ipaddrdel192…

  • LoadRunner教程07:回放测试脚本

    LoadRunner教程07:回放测试脚本1、设置runtimesetting,在vuser->runtimeseting下设置,如下图所示:2、实时观察回放的图像,在tools->generaloptions下设置,如下图所示:3、回放脚本,点击上面的运行按钮,可以回放脚本,有静态和动态运行(会标识出当前运行在哪一行代码)两种方式,在view-animatedrun中设置4、查看resu

  • 海量数据处理的 Top K相关问题「建议收藏」

    海量数据处理的 Top K相关问题「建议收藏」Top-k的最小堆解决方法问题描述:有N(N>>10000)个整数,求出其中的前K个最大的数。(称作Topk或者Top10)问题分析:由于(1)输入的大量数据;(2)只要前K个,对整个输入数据的保存和排序是相当的不可取的。可以利用数据结构的最小堆来处理该问题。最小堆如图所示,对于每个非叶子节点的数值,一定不大于孩子节点的数值。这样可用含有K个节点的最小堆来保存K个目前的最大值(当然根节点是其中的

  • java中dao层和service的关系(web基础知识有哪些)

    参考来源:http://www.xuebuyuan.com/2153333.html 1.Action/Service/DAO简介:Action是管理业务(Service)调度和管理跳转的。Service是管理具体的功能的。Action只负责管理,而Service负责实施。DAO只完成增删改查,虽然可以1-n,n-n,1-1关联,模糊、动态、子查询都可以。但是无论多么复杂的查

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号