Java 为什么要有包装类? 基本数据类型和对应包装类的区别?

Java中基本数据类型和包装类型的区别 1、包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址;基本类型不是 2、包装类型是引用的传递;基本类型是值的传递 3、声明方式不同: 基本数据类型不需要new关键字; 包装类型需要new在堆内存中进行new来分配内存空间 4、存储位置不同: 基本数据类型直接将值保存在值栈中; ... 阅读详情
为什么存在这两种类型呢?

在Java中,new的对象存储在堆里,通过栈中的引用来使用这些对象;但是对经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量。所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是***直接将变量的值存储在栈中***,因此更加高效。

有了基本类型为啥还要有包装类型?

Java是一个面向对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

另外,当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。

二者相互转换:(JDK1.5 之后体提供了自动拆装箱)

1、int转Integer
   int i = 0;
2. Integer ii = new Integer(i);
  Integer转int
3. Integer ii = new Integer(0);
  int i = ii.intValue();

二者的区别:

1. 声明方式不同:
基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
2. 存储方式及位置不同:
基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用;
3. 初始值不同:
基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null;
4. 使用方式不同:
基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。

补充:
1、int 不能赋值为null(默认值为0),包装类型Integer可以为null(默认值为null)
2、当int中的数值 与 integer 中的数值一致的时候, 使用 “==” 进行比较,结果为true
3、如果两个都是new的Integer相比较也是相等的

NVIDIA NCCL 安装和测试实战教程 ibrary)是用于深度学习应用的高性能通信库,可加速多GPU通信和同步。它能够在多个GPU之间进行高效的数据传输和集体操作,显著提高了分布式GPU系统上深度学习训练和推理的性能。NVIDIA NCCL是加速多GPU系统上深度学习应用的必不可少的工具。其高效的通信原语和集体操作显著提高了分布式训练和推理的性能,使其成为现代深度学习基础架构的关键组成部分。 阅读详情

相关推荐

UE5 使用Slate制作对话窗口

使用Slate制作对话框窗口并获取对话框结果,非UMG

qq_25521145的博客 3189

Java的包装类

一、包装类分类 Java有八种基本数据类型:byte、short、int、long、float、double、boolean、char Java为其提供了8种对应的包装类:Byte、Short、Integer、Long、Float、Double、Boolean、Character Integer num = new Integer(0); //创建一个数值为0的Integer对象 二、使用包装类的原因 Java语言是面向对象的编程语言,而基本数据类型声明的变量并不是对象,为其提供包装类,增

weixin_46140377的博客 1万+

二、ROS2完成Docker容器和宿主机通信,使用ros2 topic list看到,但是无法echo

如果容器和主机权限不一致,则会导致无法通信(我的代码中,docker容器是root,宿主机是普通用户),虽然可以查询到相关话题,但是订阅后没有消息输出。比如,docker容器创建了一个共享内存,其所有者为docker容器用户root,当宿主机去访问的时候,由于用户不同,没有权限访问,也就无法进行信息传递。该方法只是临时修改共享内存的权限,每次运行完,需要重新运行上述命令,才可以进行通信。在运行的过程中,ROS2使用了共享内存机制,会共享内存。运行之后,宿主机和容器可能用户名不同,这是因为。

qq_43280851的博客 1265

java的八大包装类

复杂操作的场景,场景1:比如定义一个Integer类型的变量,用它作为一个方法的返回值,这个方法经过一系列的操作,最后得到一个Integer类型的数据,我们并不知道他最后返回一个什么东西,有可能是数字,也有可能是个null值,如果我们用int类型来接收null的话,就会出现空指针异常,这时候就得用包装类来接收。场景2:再比如我们想要得到int的最大值,这时基本数据类型是得不到的,但包装类可以,它内部有一个静态变量,该变量存的是int类型的最大值。1.由于包装类是个类,它有丰富的方法,可以做复杂的功能。

qq_73617408的博客 1750

STM32与SD卡SPI接口硬件设计:从原理图到调试的完整指南

SPI(串行外设接口)作为一种广泛应用的同步串行通信协议,以其接线简单、驱动成熟的特点,成为连接微控制器与各类外设的经典方案。其工作原理基于主从架构,通过时钟、数据线和片选信号实现全双工通信,在嵌入式系统中具有极高的技术价值,常用于连接传感器、存储设备和显示模块等。在数据存储场景中,SD卡凭借其大容量和便携性成为首选,而通过SPI模式驱动SD卡,则平衡了性能与设计复杂度。本文聚焦于使用Altium Designer进行硬件设计的工程实践,详细解析了STM32微控制器与SD卡通过SPI通信时,电源管理、上拉电

weixin_34101784的博客 555

若依前后端分离版实战:MQTT集成保姆级教程(含MQTTX测试工具使用)

本文详细介绍了在若依前后端分离架构中集成MQTT协议的完整流程,包括环境搭建、核心配置、安全实践及性能优化。通过MQTTX测试工具的使用和实战代码示例,帮助开发者快速实现物联网场景下的实时通信功能,提升系统稳定性和效率。

weixin_30664051的博客 456

Java中的包装类

java中的包装类

vincent_vang的博客 1190

哈希拓展攻击CTF题做法

kali下载相关工具hash-ext-attack:hash拓展题目特征:2023楚慧杯upload_shell实验吧之让我进去:前言:具体怎么加密解密补位的原理我不懂,深入理解的部分我在文末挂了链接,以下也只是我做题的结论和通解,可能不准确(但是做题还挺准确),有错误欢迎指出:是在密码加密过程中引入的一个随机值,它与密码结合使用,目的是增加密码的复杂性和安全性。在密码加密中,常见的做法是将用户提供的密码进行哈希处理,然后存储哈希值而不是明文密码

2301_76690905的博客 2419

java包装类型详解

一、用途在Java语言中,包装类型(Wrapper Classes)是一种特殊的类,它们将八个基本数据类型(byte、short、int、long、float、double、char、boolean)封装在一个类中。这些包装类(如Integer、Long、Double、Character等)在java.lang包中定义,提供了一系列实用的类方法和属性。尽管在很多情况下使用基本数据类型就足够了,包装类型的存在却对Java编程模式和功能的扩展至关重要。下面详细探讨Java为什么需要包装类型。

2401_83707780的博客 1970

SpringBoot+Flowable 6.8.0实战:5分钟搞定免登录流程图设计器

本文详细介绍了如何通过SpringBoot与Flowable 6.8.0深度整合,快速实现免登录流程图设计器的集成方案。通过排除默认安全配置、自定义安全策略和用户模拟服务,开发者可在5分钟内完成设计器的部署,适用于快速原型开发和企业内部工具搭建。

weixin_29204205的博客 278

Temporal Anti-Aliasing(时域抗锯齿TAA)

首先说一下走样:一般分为时域走样(如旋转车轮)和空域走样(锯齿),但在 TAA 技术是采用时域相关叠加混合技术来解决空域走样的问题。 简单看一下空域抗锯齿 (Spatial Anti-Aliasing, SAA)相关技术,最普及的莫过于 MSAA,被各大渲染引擎采用,但是 MSAA 并不适用于延迟渲染 (Deferred Rendering),随之出现了很多基于形态学的后处理抗锯齿技术,如 MLAA,FXAA,SMAA 等(具体看参见图形_反走样技术总结相关介绍),虽然他们表现良好且支持延迟渲染,但是都会面

qq_35312463的博客 1万+

Java——八大包装类

Java中的包装类缓存机制是为了优化性能和节省内存而设计的。它为整型(Byte、Short、Integer、Long)、字符型(Character)和布尔型(Boolean)的包装类提供了缓存,确保在这些类型的小范围值之间可以复用对象。而对于浮点数类型的包装类(Float、Double),则没有这种缓存机制,意味着每次都需要创建新的对象。这样一来,Java在处理常用值时更加高效,但在浮点数处理上则相对简单直接。

Stewie Lee的博客 3603

Meta新开源多语种语音基座Omnilingual ASR

Meta FAIR 团队最近祭出了,这不仅仅是对 MMS (Massively Multilingual Speech) 的简单升级,而是一次从“多任务学习”向“上下文学习(In-Context Learning)”的范式跃迁。通过将 Wav2Vec 2.0 编码器扩展至 70 亿参数,并引入 LLM 风格的 Decoder,Omnilingual ASR 不仅原生支持 1600+ 种语言,更具备了类似 GPT 的“零样本”扩展能力——只需给出几个音频-文本对,即可解锁从未见过的语言。

kakaZhui的博客 146

Java第十五次作业

一、包装类----引入 1、什么是包装类 以前定义变量,经常使用基本数据类型 对于基本数据类型来说,它就是一个数,加点属性,加点方法,加点构造器 将基本数据类型对应进行了一个封装,产生了一个新的类。包装类 intbyte基本数据类型 包装类引用数据类型 2、对应关系 基本数据类型 对应的包装类 继承关系 byte Byte ...

Xiaozhe_Success的博客 176

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JAVA中包装类的作用

一、什么是包装类 包装类(Wrapper Class): Java是一个面向对象的编程语言,但是Java中的八种基本数据类型却是不面向对象的,为了使用方便和解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八种基本数据类型对应的类统称为包装类(Wrapper Class),包装类均位于java.lang包。 二、包装类的用途 为了使用方便Java中将8中基本数据类型进行了封...

qq_43170213的博客 2万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【Java】int和Integer的区别?为什么有包装类?

Integer是int的包装类,它们区别主要体现在5个方面:数据类型不同、默认值不同、内存中的存储方式不同、实例化方式不同、变量比较的方式不同。包装类的存在解决了基本数据类型无法做到的事情。(泛型参数、序列化、类型转换、高频区间数据缓存等)

qq_63474430的博客 4544

【Java基础】基本类型和包装类的区别

前言 Java 一种静态编程语言,所有变量和表达式是在编译时就确定的。同时,Java 又是一种强类型语言,所有的变量和表达式都有具体的类型,并且每种类型是严格定义的。在 Java中共有8种基本类型数据,同时每种基本类型又有对应的包装类。 基本数据类型(默认值) 包装类(默认值) 取值范围 byte (0) Byte (null) -128~127 short (0) Short(null) -32768~32767 int (0) Integer..

yuxiangdeming的博客 9808

八大基本数据类型对应的包装类

  以我个人屈指可数的面试面试经历来看,当然我这里主要说的是Java开发相关岗位的面试,面试的内容对于int 和Integer的区别 这类问题讨论的比较多,下面我们就开展开说明一下这类问题吧。 int我们肯定都熟悉吧,是Java当中的一个基本数据类型,这跟C语言当中的int也一样,对于Integer呢,我们或多或少也知道一点,Integer是Java当中的包装类,说白了它就是一个类。   我们首先来回顾以下Java当中的八大基本数据类型,也即byte、short、int、long、float、double、

hpf_coding的博客 6021

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

包装类 优点: 可以赋值为null 提供了一系列的方法常用的有:parseInt(String s)、tostring()、valueOf(String s)、equals( object object)、i.compareto(integer anotherIntger) 集合中不允许放基本数据类型,只能放包装类! 缺点: 由于每个值分别包装在对象中,所以ArrayList的效率远远低于i...

weixin_43060298的博客 4272

JAVA基本数据类型及其对应的包装类

一、JAVA中的八种基本类型 1、数字类型(6种)   ①byte:     占的位数:byte数据类型占八位;     最小值为:-128(-2^7);     最大值为:127(2^7-1);     默认值为:0;     作用:byte数据类型主要用于在大型数组中节约空间,用来代替整型,因为byte类型只占八位,占用的空间只有int型的1/4; ②short:     占...

yangyechi的博客 1万+

基本数据类型和包装类在实际开发时的区别

基本数据类型:Java 的集合框架(如、、等)不能直接存储基本数据类型。因为集合是用来存储对象的,而基本数据类型不是对象。例如,以下代码是错误的: 包装类包装类可以方便地在集合中使用。例如,使用存储整数可以这样写: 当从集合中取出元素时,对于包装类存储的元素,可以方便地调用包装类的方法。例如,在一个存储的集合中,想获取每个元素并进行一些基于对象的操作(如转换为其他数据类型、调用类特有的方法等)就很容易实现。基本数据类型:当基本数据类型作为方法参数传递时,是值传递。这意味着传递的是基本数据类型变量的值

洛洛呀。的博客 1155

Java中的基本数据类型和包装类的关系是什么?

Java中的包装类通过自动装箱与拆箱机制简化了基本数据类型的使用,同时利用缓存机制优化了性能和内存使用。此外,包装类还通过严格的封装机制保护了对象的内部状态,确保数据的安全性和一致性。自动装箱(Autoboxing):自动将基本数据类型转换为对应的包装器类型。例如,将int转换为Integer,将double转换为Double等。自动拆箱(Unboxing):自动将包装器类型转换为对应的原始数据类型。例如,将Integer转换为int,将Double转换为double等。

破损的天堂鸟博客 1229

Java基本数据类型及对应包装类

java中的八大包装类

qq_29462455的博客 3619

一文辨析Java基本数据类型与包装类

在 Java 中,基本数据类型和包装类是开发者频繁接触且必须熟练掌握的重要概念。基本数据类型提供了高效的数据存储和处理方式,而包装类则在面向对象编程、集合框架使用等场景中发挥着不可或缺的作用。本文我将深入剖析 Java 中基本数据类型和包装类的特性、相互转换、应用场景及注意事项,带你全面掌握这一核心知识体系。

aa_hdkf_vg的博客 1088

为什么有了基本类型还需要包装类?

基本类型是Java中最原始的数据类型,用于存储简单的数值或字符。基本类型在内存中存储的是实际的值,不需要额外的对象或结构来封装。整数类型byteshortintlong浮点类型floatdouble字符类型char布尔类型booleanint a = 10;包装类是对基本类型的对象封装。每个基本类型都有一个对应的包装类,它将基本类型的数据封装为对象。这些包装类通常位于java.langbyte->Byteshort->Shortint->Integerlong->Longfloat->

lssffy的博客 1535

Java基本数据类型及其包装类

Java基本数据类型及其包装类 正文开始@Assassin 目录Java基本数据类型及其包装类1. 基本类型包装类概述:1.1 基本数据类型和包装类型的区别:1.2 各包装类的一些基本的属性:2. 基本数据类型包装类应用:2.1 基本类型 → 字符串:2.2 字符串 → 基本类型:3. Integer类:3.1 Integer类概述:3.2 构造方法:3.3 int类型和String类型的相互转换:3.4 常用的基本进制转换:3.5 十进制转换成其他进制:3.6 其他进制到十进制:3.7 自动拆装箱:4.

NingHai's blog 829

Java中的为什么要使用包装类,以及包装类与基本数据类型的异同

为什么使用包装类

m0_62968763的博客 4585
上一篇: spring MVC的执行流程
下一篇: package java.util.Scanner的常用方法详解(代码输入输出示例)
changleeei
博客等级 码龄7年 6粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值