数组---使用方式,内存理解

数组

一、数组的定义
1、数组:就是用于存储相同数据类型的数据的容器

2、使用数组的原因:
(1)没有数组:存在多个变量,每一个变量都需要有一个名称,并且在一个作用域内,这些名称还不能重复,如果要使用数据,会导致名称过多的记忆不变,还会导致名称复杂不好管理。对于后期维护会产生非常多的不必要的麻烦。
(2)有数组:只需要使用一个容器,容器具有一个名字,以后只需要寻找这个容器,就可以得到所有的数据。数据在容器中存储有物理结构的位置关系,每一个位置都有编号,只需要通过那边好,就可以找到指定的数据,方便维护和操作数据。

3、定义格式:
数据类型[] 数组名称 = new 数据类型[数组容量];

4、详细解释:
(1)元素:存储在数组中的数据
(2)数据类型:数组定义为什么数据类型就只能存储什么类型的元素
(3)[]:一堆[]就表示一维数组
(4)数组名称:合法标识符,遵循小驼峰原则。在计算机内存中是一块区域,用于存储真是数组的地址。
(5)=:将符号右侧的真实数组的地址,赋值给符号左侧变量名称的内存空间
(6)new:关键字,含义:新建。表示在JVM的堆内存中开辟一块空间,此时这个空间就是真实的那个数组。只要一看到new,就要到堆内存中开辟一块全新的空间
(7)注意:=两侧的数据类型目前要保证完全一致
(8)数组容量:书写正整数,例如:3,就表示数组能够存储3个元素

5、注意事项:
(1)数组一旦创建,大小不可更改
(2)一种数据类型的数组,只能存储一种数据类型的数据,例如:int类型的数组,只能存int数据

6、打印数组名称得到:[l@7852e922
(1)打印的结果被称之为数组的地址
(2)[:一个就表示一维数组,几个[就表示几位
(3)l:表示是int类型数组
(4)@:普通的分隔符,用于区分前后两部分内容,没有特殊含义
(5)7852e922:十六进制数字。实际上java中没有任何的真实地址,此处的十六进制数字是底层使用hashCode方法结合计算机当中数据的真实地址使用哈希算法得到一个int类型的数据后,又转化为十六进制得来的
(6)java中实际上不存在任何的真实地址,我们看到的都是经过转化的伪地址。我们以后就将伪地址叫做地址

package com.offcn.homework;

public class Demo01_Array {

public static void main(String[] args) {
	//数据类型[] 数组名称 = new 数据类型[数组容量];
	
	//创建一个可以存储3个int类型数据的数组
	//地址:[I@7852e922
	int[] arr = new int[3];
	
	System.out.println(arr);
}
}

(二)数组的初始化

1、为数组分配内存空间,并且赋值

2、分类:
(1)动态初始化:程序运行过程中,才会知道数组中到底存放的是什么内容
1)使用格式:数据类型[] 数组名称 = new 数据类型[数组容量];
2)元素访问方式:数组名称[索引]
3)索引:数组空间位置的编号,别名:下标,角标,脚标。特点:都是正数,从0开始,按照升序排列,范围:0~数组长度-1
4)数据据有默认值:
a.整数类型:0
b.浮点类型:0.0
5)元素的赋值方式:数组名称[索引] = 元素值
(2)静态初始化:数组一创建的时候就知道存储的是哪些元素
1)使用格式:数组类型[] 数组名称 = new 数组类型[]{元素1,元素2,元素3…元素n};
2)注意事项:第二个[]中任何内容都不能写,如果书写了,java编译期又不会检查逻辑,只会觉得这是一个容量,如果与后面元素个数不一致,会产生数据的丢失,所以,这种格式在创建数组的时候,会实际根据元素的个数创建数组的大小,不需要书写数组的容量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值