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,需要显式转换。

相关推荐
蜗牛一步步往上爬1 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
这个昵称不容易2 小时前
SpringBoot「衣依」服装销售平台:144个Java文件180个接口,从挑衣服到收货评价整条链路都在
java·springboot·毕设
计算机毕设定制辅导-无忧学长3 小时前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
张张123y3 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
文丑颜不良啊4 小时前
LeetCode2221~2240题目解析
java·leetcode
秋饼4 小时前
Computer Use Agent Java 落地实战:感知-行动循环、执行器与安全围栏生产级实现
java·ai·技术分享·后端开发
冻柠檬飞冰走茶6 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
文丑颜不良啊6 小时前
LeetCode2161~2180题目解析
java·leetcode
FRing036 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
雪落漂泊6 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法