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 字节) truefalse false

二、对象类型(Reference Types)

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

  • 类(Class)

  • 接口(Interface)

  • 数组(Array)

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

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

3.1 存储方式

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

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

3.2 默认值

  • 基本类型:有默认值,如int的默认值是0boolean的默认值是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,需要显式转换。

相关推荐
皮皮林55117 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河18 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
桦说编程20 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅1 天前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者1 天前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺1 天前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart1 天前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP1 天前
MyBatis-mybatis入门与增删改查
java
孟陬1 天前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端