引用类型,一次让你听懂

🌄 斩破低山雾,真见高梧桐。

🍃 逆旅何所惧,快哉万里风。

✍️ 这里是低山高梧桐

❤️ 如有谬误,欢迎斧正

引用类型,常见的比如数组和对象,很多友友都没能理解引用类型的含义

接下来就让我给你讲讲

引用类型,学过c语言的朋友们都知道,引用类型就像指针一样

本质上就是一个存放地址变量

等号左边是变量,等号右边才赋值

比如对象

//创建对象变量,并实例化对象
Student s = new Student();

//创建对象变量
Student s;

//对象变量实例化
s = new Student();

看出来上面的区别了吗?

不管是对象还是基本类型的变量,实际上都是通过变量来存储或实例化对应的内容的

既然是变量,那么在变量创建时,就会开辟一片内存空间

//尽管不初始化或实例化,对象都会开辟内存空间
int a;
Student s;

这就是等号左边的意义,指的是开辟内存空间,只不过在没有初始化或实例化的情况下,这片内存空间就像一片空地一样,什么也没有

但是等号右边就是完成这个存放东西的使命的

//在开辟的空间中,存放int类型的数字1
int a = 1;

//在开辟的空间中,存放Student类型的对象的地址
Student s = new Student();

现在很一目了然了吧

基本类型和引用类型的区别就是

在设定好的变量中存放的一个是值,一个是地址。

//a的内存空间中

1

//s的内存空间中

0x123456

引用类型的存放内容 - 好比一条超链接

引用类型存放的地址内容指向的也是一片内存空间

如果你学过虚拟机就会知道,但是引入过多的概念会影响友友们理解

指向的内存空间中存放的才是对象的成员属性和成员方法

在这里插入图片描述

如果基本类型的变量是在空地上放一个铲子

工具 工具变量 = 铲子;

那么引用类型的变量就是在空地上放一张藏宝图

宝藏需要自己照着藏宝图寻找

宝藏 宝藏对象 = new 宝藏();

如果你还不能理解,那么引用类型就像下面插入的超链接,我不直接把一段文字放在下面,而是存一个超链接,你需要看的话,就请你自己去找吧。

简单学懂面向对象

数组对象分不清?有无下标很重要

我发现数组对象很多同学听不太懂

其实它们在构建数组变量时就出现区别了

想一下我们初学数组时,是不是提供三个构建对象的方案:

int [] arr1;
int [] arr2 = new int[4];
int [] arr3 = {1,2,3,4};

这三个类型区别很大,就像下图这样

在这里插入图片描述

所以第一种情况

int [] arr1;

它的指向为空,如果你想对其操作,会报空指针异常

下标表示数组中的单个数据,无下标表示数组对象

如题,这两种情况是不一样的

System.out.println(arr);
System.out.println(arr[0]);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值