【Java基础面试题024】Java中包装类型和基本类型的区别是什么?

news/2024/12/21 11:53:49/

回答重点

基本类型:

  • Java中有8种基本数据类型(byte、short、int、long、float、double、char、boolean)
  • 他们是直接存储数值的变量,位于栈上(局部变量在栈上、成员变量在堆上,静态字段/类在方法区),性能较高
  • 且不支持null值

包装类型:

  • 每个基本类型都有一个对应的包装类型(Byte、Short、Integer、Long、Float、Double、Character、Boolean)
  • 包装类型是类,存储在堆中,可以用于面向对象编程
  • 支持null值

区别:

1)性能区别:

  • 基本类型:占用内存小,效率高,适合频繁使用的简单操作
  • 包装类型:本质是对象,涉及内存分配和垃圾回收,性能相对较低

2)比较方式不同:

  • 基本类型:比较用==,直接比较数值
  • 包装类型:比较对象的内容用equals(),比较对象的内存地址用==

3)默认值不同:

  • 基本类型:默认值是0,false等
  • 包装类型:默认值为null

4)初始化的方式不同:

  • 基本类型:直接赋值
  • 包装类型:用new

5)存储方式不同:

  • 基本类型:如果是局部变量则保存在栈上,如果是成员变量保存在堆中
  • 包装类型:保存在堆上(成员变量,在不考虑JIT优化的栈上分配时,都是随着对象一起保存在堆上的)

扩展知识

自动装箱和拆箱

因为Java是一种面向对象语言,很多地方都需要使用对象而不是基本数据类型。比如集合类就不能存基本类型

为了让基本类型也具有对象的特征,就出现了包装类型。它相当于将基本类型包装起来,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作

  • 装箱:基本类型自动转换为包装类型对象
  • 拆箱:包装类型对象自动转换为基本数据的值

【Java基础面试题011】什么是Java中的自动装箱和拆箱?-CSDN博客

缓存机制

包装类型中的Byte、Short、Integer和Long对某些范围内的值(例如Integer缓存-128到127)会使用对象缓存来提升性能。因此,统一数值的包装类型对象可能是同一个实例

java">Integer a = 100;
Integer b = 100;
System.out.println(a == b);  // true
Integer c = 200;
Integer d = 200;
System.out.println(c == d);  // false

缓存机制可以看我另一篇博客:【Java基础面试题024】什么是Java的Integer缓存池?-CSDN博客

基本类型与包装类长度和范围


http://www.ppmy.cn/news/1556920.html

相关文章

大数据-254 离线数仓 - Airflow 任务调度 核心交易调度任务集成

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop&#xff0…

component-后端返回图片(数据)前端进行复制到剪切板

1.前言 ‌Base64编码‌:将图片转换为Base64编码的字符串,然后通过HTTP协议传输到前端。前端接收到Base64字符串后,可以通过JavaScript将其解码并显示为图片。这种方式适合小图片,如logo或验证码,因为Base64编码后的字符…

【React前端】大屏适配解决方案从框架结构到实现(超详细)(附代码)

背景 最近公司来了一个大屏的项目,之前没有接触过,因此看了很多方案,总结了一下,然后选择了一种方案去实现,看完这篇文章,只要你有设计稿,拿来就用可以100%高度还原任何场景! 方案…

【网络云计算】2024第51周-每日【2024/12/20】小测-理论-周测-解析

文章目录 1. 软件RAID的常用级别和硬件RAID的区别,制作RAID生产环境有哪些注意事项2. 交换机常用的技术有哪些3. NFS服务器如何结合LVM4. 写两个if语句,判断文件和目录是否存在5. 链路聚合和VRRP有哪些区别? 【网络云计算】2024第51周-每日【…

音视频学习(二十七):SRT协议

SRT(Secure Reliable Transport)是一种开源的网络传输协议,专为实时音视频数据传输设计,具有低延迟、高可靠性和安全性等特点。 核心功能 SRT协议旨在解决实时音视频传输中的网络抖动、丢包、延迟和安全问题,提供以下…

组装一台电脑需要哪些硬件设备?点击了解

组装一台电脑是一个既有趣又实用的过程,我们可以根据自己的需求和预算来定制一台完全符合个人使用习惯的计算机。 一、核心部件 1、中央处理器(CPU) CPU是计算机的“大脑”,负责执行各种计算任务。它的性能直接影响到计算机的运…

【AI系列】Paddle Speech安装指南

文章目录 环境依赖1. 安装Python1.1 下载Python安装包1.2 安装gcc1.3 安装依赖库1.4 编译和安装Python1.5 配置环境变量 2. 安装PaddlePaddle3. 安装PaddleSpeech4. 运行PaddleSpeech5. 解决常见问题5.1 错误:libssl.so.1.1解决方法: 5.2 错误&#xff1…

建立在商用GPT上的简单高效单细胞表示模型

大规模基因表达数据正被用于单细胞表示模型的预训练。然而,这样的模型需要大量的数据管理和训练。在这里,作者探索了一种更简单的替代方案:使用 GPT-3.5 从单个基因的文本描述中生成基因嵌入,然后通过基因表达量加权gene embeddin…