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

article/2024/6/24 18:47:15

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

java是一种强类型的语言,所以所有的属性都必须要有一个数据类型。

PS:java10有了局部变量类型推导,可以使用var来代替某个具体的数据类型,但是在字节码阶段,java的变量仍然有明确的数据类型,并且局部变量类型推导有许多限制和不完善的地方,所以不是目前主流的应用版本。

要说intInteger的区别,要从java的基本数据类型说起。

基本数据类型

java当中,一共有8种数据类型,其中有4种整形,2种浮点型,1中用于表示Unicode编码的字符类型char,和一种用于表示真假的boolean类型

  • 4种整型:int、short、long、byte
  • 2种浮点型:float、double
  • 字符类型:char
  • 真假类型:boolean

包装类型及其作用

因为java的设计理念是一切皆对象,在很多情况下,需要以对象的形式操作。比如getClass()获取类。

包装类的作用

java当中,每个基本数据类型都对应了一个包装类,包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存等问题。

基础类型包装类型
intInteger
shortShort
byteByte
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

int和Integer的区别

  1. 数据类型不同:int是基本数据类型,Integer是包装数据类型
  2. 默认值不同:int默认值是0,而Integer默认值是null
  3. 内存中存储方式不同:int在内存中直接存储的是数据值,而Integer实际存储的是对象的引用,当new一个Integer时实际是生成一个指针指向此对象
  4. 实例化方式不同:Integer必须实例化才能使用,而int不需要
  5. 变量的比较方式不同:int可以使用==来判断是否相等,而Integer一定要使用equals来比较两个变量是否相等。

可能存在不足地方,希望大家提出。我们一起更正!!!

总结

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


http://www.ngui.cc/article/show-862294.html

相关文章

第6章 Mac OSX 平台安装 MongoDB教程

Mac OSX 平台install MongoDB MongoDB 提供了 OSX 平台上 64 位的install 包,陛下可以在官网download install 包。 download 地址:https://www.mongodb.net/download-center#community 从 MongoDB 3.0 版本开始只支持 OS X 10.7 (Lion) 版本及更新版本…

DaVinci:限定器

调色页面:限定器Color:Qualifier限定器 Qualifier用来选择画面上特定的像素,并由此创建蒙版,以便于二级调色。使用限定器调板左上角的“拾取器”吸管,在检视器画面上要选择的颜色上点击或拖动。通过检视器面板左上角的…

C语言学习笔记-枚举

C enum(枚举) 枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。 枚举是用来干嘛的? 枚举在C语言中其实是一些符号常量集。直白点说:枚举定义了一些符号,这些符号的本质就是int类型的常量,每…

Linux之(20)arp命令

Linux之(19)IP命令总结 Author:OnceDay Date:2023年2月4日 漫漫长路,有人对你微笑过嘛… 参考文档: arp(8) - Linux manual page (man7.org)、彻底搞懂系列之:ARP协议 - 知乎 (zhihu.com)RFC 826: An Ethernet Add…

分享五款名不见经传但是非常实用的小众软件

我们在使用一些流行的软件的时候,往往会忽略一些知名度不高但是功能非常强大的软件,有的是因为小众,有的是因为名不见经传,总之因为不出名,有许多的好用的软件都不为大众所知道。 1. 多窗口管理——Multrin Multrin …

GcExcel-JAVA 6.0.3-Documents for Excel

在更短的时间内生成 Excel 电子表格,不依赖于 Excel! 在任何应用程序中转换、计算、格式化和解析电子表格。快速高效:其轻巧的尺寸意味着 Documents for Excel 针对快速处理大型 Excel 文档进行了优化使用适用于 Windows、Linux 和 Mac 的 J…

ESP32 Arduino 学习篇(五)TFT_eSPI库

前期准备:1.TFT_eSPI库的安装首先在Libraries里面搜索安装TFT_eSPI库到你的工程文件里面。2.TFT_eSPI库的配置文件配置该库有User_Setup.h和 User_Setup_Select.h两个配置文件,支持 ①自定义参数或 ②使用已有配置 驱动TFT屏幕。User_Setup.h — 由自己定…

Python:最少刷题数

问题描述 小蓝老师教的编程课有 N 名学生, 编号依次是 1…N 。第 i 号学生这学期 刷题的数量是 Ai​ 。 对于每一名学生, 请你计算他至少还要再刷多少道题, 才能使得全班刷题 比他多的学生数不超过刷题比他少的学生数。 输入格式 第一行包含一个正整数 N 。 第二行包含 N …

c语言指针应用

1、数组元素的指针变量 &#xff08;1&#xff09;、数组元素的指针变量 和 数组名&#xff08;作为地址&#xff09;等价 #include <stdio.h> void test() {int arr[5] {10, 23, 7, 5, 56};int n sizeof(arr) / sizeof(arr[0]);for (int i 0; i < n; i){printf(&…

RDD 持久化

文章目录RDD 持久化1、RDD Cache 缓存2、持久化的作用3、RDD ChechPoint 检查点1) 说明2) 代码示例4、Cache & Persist & Checkpoint 区别RDD 持久化 1、RDD Cache 缓存 RDD 通过 Cache 或者 Persist 方法将前面的计算结果缓存&#xff0c;默认情况下会把数据以缓存在…