Java中Integer和int的区别

Java的int和Integer有什么区别 Integer是int数据类型不同、默认值不同、内存中的存储方式不同、实例化方式不同、变量比较的方式不同。包装类的存在解决了基本数据类型无法做到的事情。(泛型参数、序列化、类型转换、高频区间数据缓存等) 阅读详情

int 是基础类型,Integer是引用类型,是int的包装类型。
int使用的是值传递。Integer使用的是引用传递。

java的基础类型都有对应的包装类型。

因为int是基础类型,所以int是分配在常量区。Integer是引用类型,所以它是分配在堆里面的。

类装载的时候,在类加载阶段。会将int类型的变量赋值为0 ,如果初始化阶段没有赋值的话,那么int类型的变量的初始值就是0 。 对于对象类型,在类加载阶段,会赋值为null, 所以在初始化阶段如果没有指定值的话,那么Integer类型的变量初始的值就是null。

使用int类型有3种方式

//直接声明变量赋值。
int i = 1;
//这里由于自动装箱拆箱,所以可以直接将值赋值给对象。
//这里编译过后会变成 Integer i1 = Integer.valueOf(1);
Integer  i1 = 1;

//使用new创建对象。
Integer i2 = new Integer(1);

int和Integer的对比如下

public static void main(String[] args) {

    int i1= 1;
    Integer i2 = 1;
    Integer i3 = new Integer(1);


    //true 因为i2会被自己拆箱成1
    System.out.println( i1 == i2);

    //true 因为i3会被自己拆箱成1
    System.out.println( i1 == i3);

    //false 因为Integer会自动在类加载的时候,自动生成一个Integer数组,保存着 -128 ~ 127 的对象
    //i2 会被编译成 i2= Integer.valueOf(1); valueOf方法会去获取预先缓存的 -128 ~ 127 对象。
    // 所以这里判断的是 i2(这个在加载阶段就创建的Integer对象) 和 i3(在执行阶段才创建的对象) 是否同一个对象,当然不是同一个对象。
    System.out.println( i2 == i3);


    Integer i4 = 2;
    Integer i5 = 2;

    //true 因为i4 和 i5 都是Integer类缓存的对象。
    System.out.println(i4 == i5);


    Integer i6 = 128;
    Integer i7 = 128;

    //false ,因为i6 和 i7都大于127。所以是new出来的对象,而不是缓存的对象。
    System.out.println(i6 == i7 );


    Integer i8 = new Integer(3);
    Integer i9 = new Integer(3);
    //false i8 和 i9都是new出来的对象,是不同的引用。所以是false
    System.out.println(i6 == i7 );

    //true  equals方法是获取int值进行对比。 他们的值都是3 所以是true
    System.out.println(i8.equals(i9));
}

 

STM32F030F4P6 ADC多通道定时器触发DMA搬运 主函数中等待转换完成的标志位,然后打印出来。ADC回调函数中将数值赋值给变量。配置定时器1s读一次。 阅读详情

相关推荐

如何使用ArcGIS自动矢量化建筑

在显示的重分类对话框内,输入栅格选择提取单波段后的栅格,重分类分为三个层级,旧值分别为100-249、250-251和252-255,对应新值为1、2和3,旧值的最小和最大值不用修改,保持和原有的一致。同样在ArcToolbox内点击Spatial Analyst工具点击“重分类\重分类”,在重分类对话框内输入栅格选择之前重分类过后的图片,将旧值3的新值设置为1,这样分类后就只有两类。在显示的新建Shapefile对话框内,名称命名为折线,要素类型选择折线,点击编辑,设置坐标系为WGS 1984。

2165

Java中int和integer的区别

Java中有着自带的基本数据类型int,但是今天在学习过程中发现还有integer这种类型,int i=1;和integer i=1;表面上达到的效果是一样的,由此深入探究一下二者的区别

L1772804477的博客 368

UE4载具性能调优指南:从参数设置到实战优化

本文详细解析了UE4载具性能调优的关键技巧,从WheeledVehicle类构建到轮子参数、传动系统设置,再到物理属性与操控调校。通过实战案例分享,帮助开发者优化载具的速度、加速度等核心性能,提升游戏体验。特别适合需要精细调校载具物理特性的开发者参考。

weixin_29019241的博客 469

Integer int类型的 == 比较

Integer a = 1; int b = 1; Integer c = Integer.valueOf(1); Integer d = new Integer(1); System.out.println(a == b); System.out.println(a == c); System.o...

wzl1369248650的博客 798

逆向工程师视角:拆解DataDome滑块验证码的3层防护机制与绕过思路

本文从逆向工程师视角,深入剖析DataDome滑块验证码的三层核心防护机制。第一层通过动态加密参数实现会话绑定与抗重放;第二层采集TLS指纹、鼠标轨迹动力学等多维行为数据进行一致性验证;第三层则是基于机器学习的后端异步风险决策引擎。文章不仅拆解了其技术原理,更分享了模拟、钩取等超越单纯工具调用的底层分析与绕过思路。

f6g7h8i9j的博客 733

Oracle 11g版本下载及安装超详细教程图解

新手Oracle安装教程

weixin_43738344的博客 10万+

java中int与Integer用==比较详解

前言:    越是简单的东西,我们往往越是没有去把它明白,但我们大部分时间又常常在用,就像我们今天说的int与Integer的使用,我们程序员基本天天都在用,但是我今天没用详细弄清楚之前我也是不清楚,我们来看看这两个在用==号比较给我们带来的疑问。        先看看下面的代码,看看我们是否都会        @Test public void testEquals() { int int...

xingkongdeasi的专栏 5万+

LLaMA-Factory微调教程5:多模态VLM模型对话

视觉-语言模型(VLM)概述与应用 视觉-语言模型(VLM)是一类结合视觉和语言信息的人工智能模型,旨在实现跨模态的理解与交互。其核心目标包括跨模态理解和生成能力,关键技术涉及模态表示与映射、多模态预训练以及跨模态交互机制。 典型VLM模型包括: CLIP:通过对比学习实现图像和文本的向量空间对齐 BLIP:结合自监督和弱监督学习提升语义对齐 ALBEF:基于BERT结构扩展跨模态注意力 DALL-E系列:基于文本生成图像的生成式模型 CLIP4Clip:扩展CLIP到视频领域 VLM在图像/视频检索、视觉

Cachel Wood的博客 1115

Integer类型==和equals比较(包含算术运算符)

包装器类型和基本数据类型之间的隐式转换。装箱和拆箱。Integer对象进行运算的过程。==和equals的使用

qq_66731608的博客 586

YOLOv8改进 | Neck篇 | Slim-Neck替换特征融合层实现超级涨点 (又轻量又超级涨点)

本文给大家带来的改进机制是Slim-neck提出的Neck部分,Slim-neck是一种设计用于优化卷积神经网络中neck部分的结构。在我们YOLOv8中,neck是连接主干网络(backbone)和头部网络(head)的部分,负责特征融合和处理,以便提高检测的准确性和效率。亲测在小目标检测和大尺度目标检测的数据集上都有大幅度的涨点效果(mAP直接涨了大概有0.4左右。同时本文对Slim-Neck的框架原理进行了详细的分析,不光让大家会添加到自己的模型在写论文的时候也能够有一定的参照。

Snu77的博客 1万+

华为OD机试2025C卷-双十一最大花费金额[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率

双十一最大花费金额 - 动态规划解法 摘要:本文介绍了华为OD机试中"双十一最大花费金额"问题的动态规划解法。该问题要求在给定N件商品价格和优惠券面额X的情况下,选择若干商品使总花费不超过X且尽可能大。核心解法采用布尔型动态规划数组,记录每个金额是否可被拼出。算法时间复杂度为O(N*X),空间复杂度为O(X)。通过倒序遍历避免重复选择同一商品,最后从X向下查找第一个可达金额作为答案。文中提供了C++和Java的实现代码,并解释了与经典0-1背包问题的关系。 关键点: 问题本质是0-1背包/子集和问题的变体

2503_91057718的博客 47

关于int和integer

大家可以看一下下面这个java程序的运行结果 int k = 1; int l = 1; System.out.println(k == l); int a = 128; int b = 128; System.out.println(a == b); Integer i = 1; Integer j = 1; System.out.println(...

爱跑步的大胖子的博客 335

Qt —— 在Win11下“Qt for Android“开发环境,通过USB在真机(华为Meta60 PRO)上调试运行,并打包APK并在真实手机运行

Qt —— 在Win11下“Qt for Android“开发环境,打包APK并在真实手机运行

315

Java-int和Integer的区别

在说int和Integer的区别之前,先要弄清楚两个问题: 一、java基本数据类型及其封装类 二、java自动拆箱和自动装箱 一、java基本数据类型及其封装类 数据类型 字节大小 封装类 byte 8位 Byte short 16位 Short int 32位 Interger long 64位 Long float 32位 Float double 64位...

T-bright的博客 2万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java的Integer和int有什么区别

Java是面向对象的编程语言,一切都是对象,但是为了编程的方便还是引入了基本数据类型,为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换,对应如下: 原始类型:boolean,char,byte,short,int,long,f

login_sonata的博客 5万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java int和Integer的区别

1 区别 Integer是int的包装类,int则是java的一种基本数据类型 Integer变量必须实例化后才能使用,而int变量不需要 Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 Integer的默认值是null,int的默认值是0 2 ==比较 2.1、由于Integer变量实际上是对一个Integer对象的引...

ZjfScorpio 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java基础 - Integer和int的区别

一、int和Integer的区别 两者的区别主要体现在以下几个方面: 1、数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型; 2、默认值不同:int 的默认值是 0,而 Integer 的默认值是 null; 3、内存中存储的方式不同:int 在内存中直接存储的是数据值,而 Integer 实际存储的是对象引用,当 new 一个 Integer 时实际上是生成一个指针指向此对象; 4、实例化方式不同:Integer 必须实例化才可以使用,而 int 不需要; 5、变量的比较方式不同:

java123456111的博客 3万+

Java中Int、Integer、new Integer()之间的区别

Java中有八种基本数据类型,Int是其中之一。而Integer是Int的封装,即Integer其实是一个对象。可以通过new来创建一个Integer对象,也可以直接将Int值赋给Integer变量。它们之间的区别如下: 一:Int Int是Java八种基本数据类型之一,一般大小为4字节32位,取值范围为2^-31—2^31。两个Int类型变量用“==”比较的是内容的大小。 例如:int a...

yuncaidaishu的博客 1万+

JAVA的integer与int有什么区别

java int与integer的区别 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为nu...

guangod的博客 5943

Java中 Int和Integer的区别

https://blog.youkuaiyun.com/DoWhatYouSay/article/details/82659239 int和Integer的区别 1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null,int的默认值是0 延伸: 关于Integer...

Move on 1380

java中int和Integer什么区别

int 是基本类型,直接存数值   integer是对象,用一个引用指向这个对象   1.Java 中的数据类型分为基本数据类型和复杂数据类型   int 是前者>>integer 是后者(也就是一个类)      Integer 是对象类型 int是原始类型 适用场合有很大的不同 之所以要把int封装成Integer 型 是因为很多方法参数就只接收对象类型(Object)

L12345678999的专栏 3159

Java中int和Integer的区别

int和Integer的区别 1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null,int的默认值是0 注: 由于Integer变量实际上是对...

Heliumfly的博客 493

java中int与int和integer的区别?

int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象. 1.Java 中的数据类型分为基本数据类型和复杂数据类型(包装类型): int属于基本数据类型,而integer属于包装数据类型, 正因为如此,int在初始化时值为0,而integer初始化时值为null, int在初始化时,直接可以写in...

潇洒不放纵的博客 2492

JAVA中int 是什么意思,java中int和Integer什么区别

java中int和Integer的区别 一看就懂int 是基本类型,直接存数值integer是对象,用一个引用指向这个对象1.Java 中的数据类型分为基本数据类型和复杂数据类型int 是前者>>integer 是后者(也就是一个类)Integer 是对象类型 int是原始类型 适用场合有很大的不同 之所以要把int封装成Integer 型 是因为很多方法参数就只接收对象类型(Obj...

weixin_35291771的博客 4700

Java中int跟Integer的区别

在了解int跟Integer的区别与联系之前需要先了解Java的自动装箱跟拆箱机制,可以看我的另一篇文章Java中自动装箱与拆箱详解。Integer是int的包装类。Java为每一种基本数据类型都配备了相应的包装类,如下表所示: 基本数据类型 byte short int long float double char boolean 对应的包装类 Byte

解忧杂货铺 1166
上一篇: LRU(Least Recently Used)页面置换算法
下一篇: 出栈序列【模拟】
Estrellas_
博客等级 码龄9年 273粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值