基本变量与引用变量的区别

基本数据类型创建的变量,称为基本变量,该变量空间中直接存放的是其所对应的值;
而引用数据类型创建的变量,一般称为对象的引用,其空间中存储的是对象所在空间的地址。

public static void func() {
int a = 10;
int b = 20;
int[] array = new int[]{1,2,3};
}

在上述代码中,a、b、arr,都是函数内部的变量,因此其空间都在main方法对应的栈帧中分配。
a、b是内置类型的变量,因此其空间中保存的就是给该变量初始化的值。
array是数组类型的引用变量,其内部保存的内容可以简单理解成是数组在堆空间中的首地址。
在这里插入图片描述
引用变量并不直接存储对象本身,可以简单理解成存储的是对象在堆中空间的起始地址。通过该地址,引用变量便可以去操作对象。有点类似C语言中的指针,但是Java中引用要比指针的操作更简单。

public static void func() {
	int[] array1 = new int[3];
	array1[0] = 10;
	array1[1] = 20;
	array1[2] = 30;
	int[] array2 = new int[]{1,2,3,4,5};
	array2[0] = 100;
	array2[1] = 200;
	array1 = array2;
	array1[2] = 300;
	array1[3] = 400;
	array2[4] = 500;
	for (int i = 0; i < array2.length; i++) {
	System.out.println(array2[i]);
	}
}

在这里插入图片描述

在这里插入图片描述
同时要注意
如下面这段代码

import java.util.Arrays;
public class helloworld {
    public static void main(String[] args) {
        int[] arr1 = new int[]{1, 2, 3, 4, 5};
        int[] arr2 = new int[]{6, 7, 8, 9, 10};
        arr1 = arr2;
        arr1[0] = 188;
        System.out.println(Arrays.toString(arr1));
        System.out.println(Arrays.toString(arr2));
    }
}

在arr2赋值给arr1之后,arr1就指向arr2指向的那片数组了,所以其原本指向的那片数组空间{1,2,3,4,5}会被直接释放掉,系统会自动释放,不需要我们手动进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值