数组

数组的概述

数组指的是一个容器 可以用来存储同种数据类型得多个值
数组容器在存储数据的时候,需要结合隐式转换考虑
例如:int类型的数组容器(byte short int)
例如:double类型的数组容器(byte short int long float double)
建议:容器的类型,和存储的数据类型保持一致

数组的定义

格式一:数据类型[] 数组名
范例:int [] array
格式二:数据类型 数组名[]
范例:int array[]

数组的初始化(array Demo5 Demo6 Demo7)

初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器的过程
静态初始化(array Demo1)
完整格式:数据类型[]数组名 = new 数据类型[]{元素1,元素2,....};
double[]array = new double[]{11.1,22.2,33.3};
简化格式:数据类型[]数组名={元素1,元素2,元素3,....};
array 数组一旦建立好了之后 他的长度不会改变了

数组的地址值

直接输出数组System.out.println(ages);
得到[I@4554617c
[:表示当前是一个数组
I:表示当前数组里面的元素都是int类型
@:表示一个间隔符号(固定格式)
4554617c:才是数组真正的地址值(十六进制)

数组元素访问

格式:数组名[索引];
索引:叫做下标,角标。
索引的特点:从0开式,琢个+1增长,连接不间断
利用索引对数组中的元素进行访问
1获取数组里面的元素(array demo2)
格式:数组名[索引]
2把数据存储到数组当中(array demo3)
格式:数组名[索引]=具体数据/变量
一旦覆盖之后 原来的数据不存在了

数组的遍历

数组遍历:将数组中所有的内容取出来,取出来之后可以(打印,求和,判断..)
注意:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印
在 java当中 关于数据的一个长度属性:length
调用方式:数组名.length(array demo4)
扩展:
idea提供的自动的快速生成数组的遍历方式
数组名.fori(array demo4)
练习(array Demo5 Demo6 Demon7 Demo8 Demo9(求最大值) Demo10(遍历数组求和) Dmeo11 Demo12 Demo3(数组练习 交换数据) Demo14(数组练习 打乱数据))

数组的动态初始化和三道综合练习

动态初始化:初始化只指定数组长度,由系统为数组分配初始值。
格式:数据类型[]数组名=new 数据类型[数组长度];
String[] arr = new String[50];
整数类型:默认初始化值0;
小数类型:默认初始化值0.0
字符类型:默认初始化值'/u0000'空格(char)
布尔类型:默认初始化值false
引用数据类型:默认初始化值null
数组动态初始化和静态初始化的区别
动态初始化:手动指定数组长度,由系统给出默认初始化值
只明确元素个数,不明确具体数值,推荐使用动态初始化
静态初始化:手动指定数组元素,系统会根据元素的个数,计算出数组的长度
需求中已经明确了要操作的具体数据,直接静态初始化即可

数组的内存图

java内存分配
栈 方法运行时使用的内存,比如main方法运行,进行方法栈中执行
堆 存储对象或者数组,new来创建的,都存储在堆内存(具有地址值)
方法区 存储可以运行的class文件
本地方法栈 JVM在使用操作系统功能的时候使用,和我们开发无关
寄存器 给CPU使用,和我们开发无关
两个数组指向同一空间的内存图
int[] arr1 = {11,22};
int[] arr2 = arr1;
arr2[0]=22;
sout(arr1[0]);
sout(arr2[0]);
输出结果都是33

posted @ 2025-09-06 21:08  MAY李  阅读(8)  评论(0)    收藏  举报