Java学习笔记--数组

数组定义

数组定义
数组是在程序设计中提供的一直很重要的数据类型,在Java中数组属于引用类型,所以数组也会涉及到堆栈空间的分配以及引用传递。

首先,数组有两种初始化的方式,静态初始化动态初始化
在这里插入图片描述
在这里插入图片描述
接着,因为数组是属于引用类型的数据,代码中需要进行内存分配,我们来了解一下,堆内存和栈内存的概念。
[heap] 堆内存:保存的是对象的基础信息(成员属性)在程序之中堆内存空间的开辟是通过new来完成的。
[stack] 栈内存: 本质上是保存一块堆内存的地址,也就是说通过地址找到堆内存,然后找到对象的内容,也可以简单的理解为对象名保存在栈内存当中。
用图来描述一下,
在这里插入图片描述

数组的引用传递分析

我们知道,在数组使用时需要通过new开辟内存堆内存空间来存放值,一块堆内存空间也可以同时被多个栈内存指向,因此,我们可以进行引用操作。
在这里插入图片描述
通过这个代码,大家可以想一下,输出的结果会是什么?
显然在这里插入图片描述
data[0]的值被改变了,我们分析一下,执行data[0] = 99 跟temp[0] =99; 运行的程序结果是一样的。这是因为data数组通过引用传递给了temp,并且利用temp修改了数组的内容。本程序的内存操作如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数组与方法

在数组进行引用传递的处理中,最为常见的形式就是基于方法进行引用数据的处理或者返回。
提到方法,我们一定要想这个方法的有无返回值和参数。通过这个,我们可以使用一个方法实现对数组引用
在这里插入图片描述
通过方法返回数组的过程如下:
在这里插入图片描述

对象数组

在Java中所有的数据类型都可以定义为数组,即除了基本的数据类型的数据定义为数组外,引用数据类型也可以定义为数组,咱管他叫 对象数组。
一开始我也不是理解这个概念,其实,对象数组,既是一个数组,也是一个对象。他不仅可以调用方法,也能通过索引来寻找值。
在这里插入图片描述
Person类略写。。
实际上,对象数组跟其他数据类型比起来,对象数组描述的第一种“多”的概念,如果没有这个结构就很难描述出一个人有多个子女的概念。

内容部分摘抄–《Java从入门到项目实战》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值