当前位置: 首页 > news >正文

Integer和int的基础区别

一、基础定义
int
Java 8 种基本数据类型(原始类型 primitive type) 之一
占用内存:4 字节(32 位)
取值范围:-2³¹ ~ 2³¹-1 → -2147483648 ~ 2147483647
Integer
引用类型(包装类),java.lang.Integer
是 int 的对象封装,内部持有 private final int value;
对象,存在堆内存,占用更大内存
补:Java 八种基本类型与对应包装类
byte→Byte、short→Short、int→Integer、long→Long
float→Float、double→Double、char→Character、boolean→Boolean
二、核心区别

  1. 默认值不同
// 作为类成员变量classTest{inta;Integerb;}

int a 默认值:0
Integer b 默认值:null
2. 能否为 null
int:绝对不能赋值 null,编译报错
Integer:可以是 null
做接口数据传输的时候要注意:如果前端不传字段 → 框架赋值 null,用 int 直接抛出类型转换异常。
3. 内存存放位置
int:
局部变量 → 栈内存;对象成员变量跟着对象在堆,但数值是原始值。
没有对象头,只存纯粹数值,开销极小。
Integer:
是对象,实例存放在堆内存;包含对象头、成员 value,内存开销远大于 int。
4. == 判断规则(高频坑!重点)
① int 和 int 比较
直接比较数值

inta=100;intb=100;System.out.println(a==b);// true

② Integer 和 Integer 使用 ==
这里涉及 Integer 缓存池(IntegerCache)
Integer 默认缓存 -128 ~ 127 之间的对象。

Integeri1=100;Integeri2=100;System.out.println(i1==i2);// true 命中缓存Integeri3=200;Integeri4=200;System.out.println(i3==i4);// false 超出缓存,新建两个对象

所以Integer 对象比较数值永远使用 .equals()。
③ int 和 Integer 混合 ==
Integer 会自动拆箱成 int,只比较数值
但是,如果Integer是null则自动拆箱会空指针

Integera=null;intb=10;if(a==b){}// NullPointerException!// 执行逻辑:a.intValue() 拆箱,null调用方法空指针
  1. 自动装箱 & 自动拆箱(JDK1.5 + 特性)
    装箱:int → Integer
    Integer num = 10; 等价于 Integer num = Integer.valueOf(10);
    拆箱:Integer → int
    int n = num; 等价于 int n = num.intValue();
    所有拆箱操作,如果 Integer 为 null → 空指针异常!
    补:不推荐混搭!!!
http://www.jsqmd.com/news/1391838/

相关文章:

  • AI Agent 面试题 438:如何实现Agent的记忆系统的弹性伸缩?
  • HarmonyOS6.1.1-Canvas:维修签名-开关变化显式重绘
  • 基于TinyPXE构建无盘启动环境:从原理到实战部署WinPE与Linux
  • Dism++终极上手指南:一次搞定C盘爆满、更新失败与重装恐惧的免费Windows优化神器
  • B站视频解析如何实现?PHP 视频解析 API 三步拿到播放直链
  • (三)Linux 进程管理 + tar/gzip 压缩解压
  • 3分钟搞定Windows和Office激活:KMS_VL_ALL_AIO全指南
  • 项目管理进阶——解读研发项目管理试行办法【附全文阅读】
  • 图片编辑方案的功能特征
  • 实测 Win11Debloat:免费开源脚本让 Windows 11 系统减负的正确姿势
  • AI时代:论文写作的第三条路
  • GBFR-Logs完全指南:免费开源,《碧蓝幻想:Relink》DPS统计工具的真实使用体验
  • 【Tool】Windows 如何统一管理多个语言版本?mise即为答案(mise工具的安装及使用指南)
  • 继任计划要敢写空缺,名单填满反而危险
  • B站缓存m4s转MP4一键无损:把被拆散的音画,5秒合体
  • AI Agent 面试题 436:如何设计Agent的记忆系统的数据迁移方案?
  • Wand-Enhancer免费解锁Wand全部高级功能:从构建到远程控制的完整实战指南
  • 揭秘真相:江苏省建设协会网站首页背后代表的行业自律与信任重建力量
  • 蝴蝶号漫剧二创审核加速工具|四张工程图模板+包过保障|日审3-4部轻松过审
  • 大数据中心——解读IT基础设施云数据中心规划设计方案
  • 华为MetaERP Oracle EBS R12 AR「收款渠道」完整配置指南一、先厘清核心概念(很多人混淆)1、术语对应关系表格业务俗称 EBS 标准名称 作用定位收款渠道 Receipt
  • OpenCV计算机视觉开发入门与实践<六>:OpenCV架构模块简介
  • 3 分钟上手 VideoDownloadHelper:这款开源 Chrome 视频下载插件,帮你把网页视频稳稳存进本地
  • 终极Boot Camp驱动自动化工具:用Brigadier把Mac装Windows的驱动难题一键清零
  • BetterNCM安装教程:四步速通网易云插件管理器,从报错到完美运行
  • 无需模拟器,10 分钟用 APK Installer 在 Windows 上安装 Android 应用
  • 一键彻底卸载Edge:EdgeRemover 脚本使用指南
  • 【ORC】如何使用 ORC 工具(orc-tools)进行文件验证、转换和性能分析?
  • 受够了激活弹窗?KMS激活工具3分钟实现永久激活Windows与Office
  • 2020版CAD安装T20天正插件后显示文字问题:从软件到图显,无处不在的文字错乱,无法认别...如何解决?