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

基本数据类型和包装类的区别?

  1. 默认值
  2. 初始化
  3. 存储方式

基本数据类型

包装类

备注

本质

数据本身,不是对象

对象,是基本类型的包装

之间可以通过自动拆箱、装箱互相转换。

存储

栈(局部变量)或堆(成员变量)

堆(对象实例),
栈(引用)

JIT栈上分配优化:
JIT编译器在运行时可能会通过逃逸分析将某些没有逃逸出方法的对象拆解并分配在栈上,但并不改变其作为对象的本质。

默认值

0, false, \u0000

null

如果对null拆箱会抛出NPE

初始化

直接赋值
(int a = 10;)

new
valueOf()

推荐使用valueOf()以利用缓存

性能

无额外开销

有对象创建和GC开销

循环、高性能计算中优先使用基本类型

应用场景

局部变量、成员字段、计算

集合、泛型、需要null语义的场景、反射API

集合类如ArrayList<Integer>必须用包装类

比较操作

==比较值

==比较引用,
equals()比较值

永远使用equals()比较包装类

缓存机制

不涉及

Integer等有缓存范围

自动拆箱和装箱的原理与作用-CSDN博客

  1. ​性能开销​
  2. NPE风险
  3. 包装类缓存机制
  4. 比较包装类用equals() 
http://www.xdnf.cn/news/20230.html

相关文章:

  • 2025年大数据专业人士认证发展路径分析
  • MySQL运维补充
  • 【目录-判断】鸿蒙HarmonyOS开发者基础
  • 敏捷scrum管理实战经验总结
  • 贪心算法应用:化工反应器调度问题详解
  • 【LLIE专题】SIED:看穿0.0001lux的极致黑暗
  • NPU边缘推理识物系统
  • 懒加载的概念
  • 新能源风口正劲,“充电第一股”能链智电为何掉队?
  • 操作系统启动过程详解
  • Coze源码分析-资源库-删除插件-前端源码-核心组件实现
  • 03-生产问题-慢SQL-20250926
  • 机器人控制器开发(导航算法——导航栈关联坐标系)
  • 创客匠人:什么是“好的创始人IP”
  • 2025年本体论:公理与规则的挑战与趋势
  • CentOS系统停服,系统迁移Ubuntu LTS
  • 【CSS,DaisyUI】自定义选取内容的颜色主题
  • Android开发——初步了解AndroidManifest.xml
  • 零基础入门深度学习:从理论到实战,GitHub+开源资源全指南(2025最新版)
  • C++ 条件变量 通知 cv.notify_all() 先释放锁再通知
  • [光学原理与应用-428]:非线性光学 - 为什么要改变光的波长/频率,获得特点波长/频率的光?
  • RocketMQ如何处理消息堆积
  • 云某惠旧案再审可能性与商业创新实践:积分运营的边界与实体商家机遇
  • 【设计模式】 工厂方法模式
  • 【YOLOv11】2.安装Anaconda3
  • 机器人控制器开发(定位算法——map、odom、baselink关联与差异)
  • JavaScript的库简介
  • 离散数学学习指导与习题解析
  • react生命周期,详细版本
  • 运筹学——求解线性规划的单纯形法