基本引用类型和对象引用类型区别

本文详细解析了编程中的两种基本变量类型——基本类型与引用类型。介绍了它们的存储方式、使用特点及区别,帮助读者深入理解变量类型及其应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量有两种不同的数据类型:基本类型,引用类型。也有其他的叫法,比如原始类型和对象类型,拥有方法的类型和不能拥有方法的类型,还可以分为可变类型和不可变类型,其实这些叫法都是依据这两种的类型特点来命名的,
区别一:
基本类型的值包括数值类型或字符类型,或者布尔值类型。
数值类型:整型int  非整型 double
字符类型:单个字符char  串字符 String
布尔值类型:真true  假false(我的理解能够运行成功的是真,不能成功的是假)
基本类型的值是不可变的:任何方法都无法改变一个基本类型的值.
引用数据类型:类,接口类型,数组类型。
类:class 接口:interface 数组:array
引用数据类型,赋值是把原对象的引用传递给另外一个引用,对数组而言,当一个数组引用赋值给另外一个数组引用后。这两个人引用指向同一个数组,也就是指向同一块内存空间。
区别二:
基本数据类型和引用数据类型的区别主要在存储值的方式上,基本数据在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。引用数据类型在被创建时,要首先在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址(保存的是一个地址)。他们占用空间大小和存取速度不同,当引用类型和基本类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与他们的类型有关。
例如:我有一个类Wode其中的属性day,mouth,year等,有构造方法(带参数);
现在为其创建一个对象Wode d1=new Wode(1,28,2017);
在内存中的具体创建过程是:
1.首先在栈内存中为其d1分配一块空间;
2.然后在堆内存中为Wode对象分配一块空间,并为其三个属性初设值0,0,0;
3.根据Wode中对属性的定义,为该对象的三个属性进行赋值操作;
4.调用构造方法,为三个属性赋值为1,28,2017;注意这个时候d1与Wode对象之间还没有建立联系.
5.将Wode对象在堆内存中的地址,赋值给栈中的d1;通过引用d1可以找到堆中对象的具体信息。
举个简单的例子:
Class a{
Private int age;
Private String name;
}
int是基本数据类型,当new a()的时候,age自动赋值为0;
但是对于引用类型name来说,此时只会分配一个引用,指向null,当你想使用name的时候不能直接使用,必须实例化之后才能使用。
区别三:
从他们的使用方面说:基本数据类型使用时需要赋具体值,判断时使用“==”号。引用数据类型:使用时可以赋值null,判断时使用equals方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值