java基本数据类型和引用数据类型区别

java基本数据类型和引用数据类型区别

基本数据类型

java有八种基本数据类型,分别对应八种不同的类,如图所示:
在这里插入图片描述

java基本数据类型和类的实例对象有什么区别呢?
Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。

自动装箱和自动拆箱

自动装箱就是自动将基本数据类型转换为包装器类型;
自动拆箱就是自动将包装器类型转换为基本数据类型。
从Java5.0开始,JVM可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类。但是不能通过基本类型调用它们的包装类才具有的方法。
另外,所有基本类型的包装类都使用了final修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法。

引用数据类型

我们首先来了解一下什么是引用数据类型:
该数据类型在创建的时候,会先在堆内存中分配一块空间,存储对象的具体信息,然后在栈中存储该对象的地址信息;
这句话的意思是,当我们创建一个引用数据类型时,该数据在堆中存储数据本身,在栈中存储指向该数据的内容,在栈中指向的数据类似于C语言中的指针。
如果还不好理解的话,我们来看一下和基本数据类型的对比:

表头基本数据类型引用数据类型
变量名指向的对象具体的数值存储对象的内存地址
内存分配位置
声明后内存是否分配否(只是存储内存地址)
赋值内容的拷贝传递引用,多个引用指向同一个数据
比较是否相等==equals方法
引用数据类型主要包括类、接口类型、数组类型、字符串型(String)等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值