JAVA中基本类型和包装类型的区别

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

在 Java 中,基本类型(Primitive Types)不是对象。Java 中的基本类型和对象类型有明显的区别,以下是详细的解释:

一、基本类型(Primitive Types)

Java 提供了 8 种基本类型,它们是预定义的数据类型,用于存储简单的数据值。基本类型不是对象,它们直接存储数据值,而不是引用对象。以下是 Java 中的基本类型:

一、整数类型

类型 大小(字节) 范围 默认值
byte 1 -128 到 127 0
short 2 -32768 到 32767 0
int 4 -2147483648 到 2147483647 0
long 8 -9223372036854775808 到 9223372036854775807 0L
float 4 单精度浮点数 0.0f
double 8 双精度浮点数 0.0d
char 2 Unicode 字符集,范围为 \u0000 到 \uffff \u0000
boolean 1(实际占用 1 字节) true 或 false false

二、对象类型(Reference Types)

对象类型是基于类或接口的类型,它们存储的是对象的引用,而不是实际的数据值。对象类型包括:

  • 类(Class)

  • 接口(Interface)

  • 数组(Array)

对象类型的所有实例都是通过new关键字创建的,它们存储在堆内存中,通过引用访问。

三、基本类型与对象类型的比较

3.1 存储方式

  • 基本类型:直接存储数据值,存储在栈内存中。

  • 对象类型:存储对象的引用,实际对象存储在堆内存中。

3.2 默认值

  • 基本类型:有默认值,如int的默认值是0,boolean的默认值是false。

  • 对象类型:默认值是null,表示没有引用任何对象。

3.3 类型转换

  • 基本类型:支持自动类型转换(从小范围类型到大范围类型)和显式类型转换(从大范围类型到小范围类型)。

  • 对象类型:需要通过显式转换(强制类型转换)来改变引用的类型。

3.4 包装类

Java 为每种基本类型提供了对应的包装类,用于将基本类型封装为对象。包装类是对象类型,它们提供了更多的方法和功能。

3.4 包装类

Java 为每种基本类型提供了对应的包装类,用于将基本类型封装为对象。包装类是对象类型,它们提供了更多的方法和功能。

基本类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

四、示例代码

4.1 基本类型

java 复制代码
int number = 10; // 基本类型 int

4.2 对象类型

java 复制代码
Integer number = new Integer(10); // 对象类型 Integer

五、总结

  • 基本类型:不是对象,直接存储数据值,存储在栈内存中,有默认值,支持自动和显式类型转换。

  • 对象类型:是对象,存储对象的引用,存储在堆内存中,默认值是null,需要显式转换。

相关推荐
GIS数据转换器7 分钟前
地下空间综合管廊运营管理平台
大数据·开发语言·人工智能·经验分享·perl
猿究院_夏燊5 小时前
Spring Bean 生命周期
java·后端·spring
Wang's Blog5 小时前
Java 项目实战: 交友项目:登录链路回顾与今日任务地图
java·开发语言·状态模式·交友
信誓旦旦的程序猿6 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河6 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
今年下半年6 小时前
AI智能体项目实战记录(02):初始化 Python 项目
开发语言·人工智能·python·fastapi
Jlzn88886 小时前
华东电芯分选通道数怎么配才不堵线
java·人工智能·架构·自动化·制造
Williamtym6 小时前
PickGo Lab实践:用浏览器、Python和MCP串起机器人搬运仿真
开发语言·python·机器人
香吧香6 小时前
GRPC连接机制---长连接分析
java·网络与传输协议
DongQiShanRen6 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习