2024年java数组的基础

java数组的基础文章目录 数组的定义 数组初始化 数组静态初始化 数组的动态初始化 数组的地址值和元素访问 数组索引 下标 角标 数组遍历 数组常见操作 数组内存 Java 内存分配 数组内存图 数组 是一种容器 可以用来存储同种数据类型的多个值 数组容器在存储数据的时候 需要结合隐式转换考虑 int 类型的数组容器 可以存储 byte short

大家好,我是讯享网,很高兴认识大家。



文章目录

  • 数组的定义
  • 数组初始化
    • 数组静态初始化
    • 数组的动态初始化
    • 数组的地址值和元素访问
  • 数组索引/下标/角标
  • 数组遍历
  • 数组常见操作
  • 数组内存
    • Java内存分配
    • 数组内存图

数组:是一种容器,可以用来存储同种数据类型的多个值

数组容器在存储数据的时候,需要结合隐式转换考虑。

int类型的数组容器,可以存储:byte、short、int;但是不能存储boolean和double

double类型的数组容器,可以存储:byte、short、int、long、float、double

建议:容器的类型,和存储的数据类型保持一致

数组的定义

格式一:数据类型[ ] 数组名

例:int[ ] array

格式二:数据类型 数组名[ ]

范 例:int array [ ]

数组初始化

初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程

分类:

  • 静态初始化
  • 动态初始化

数组静态初始化

1.完整格式:

数据类型[ ] 数组名 =new 数据类型[ ]{元素1,元素2,…};

 
讯享网 

2.简化格式(推荐使用)

数据类型[ ] 数组名 ={元素1,元素2,元素3…};

讯享网

数组的动态初始化

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值,

格式:数据类型[数组名=new 数据类型[数组长度];

范例:int[ ] arr =new int[3];

数组动态初始化和静态初始化的区别:

java数组的基础

动态初始化:手动指定数组长度,由系统给出默认初始化值。只明确元素个数,不明确具体数值,推荐使用动态初始化

静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度;需求中已经明确了要操作的具体数据,直接静态初始化即可。

数组的地址值和元素访问

数组的地址值表示数组在内存中的位置

在这里插入图片描述

[:表示当前是一个数组

D:表示当前数组里面的元系都是double类型的

@:表示一个间隔符号。(固定格式)

776ec8df:才是数组真正的地址值,(十六进)

平时我们习惯性的会把这个整体叫做数组的地址值。

数组索引/下标/角标

1.索引的特点:从0开始,逐个+1增长,连续不间断

2.把数据存储到数组当中

格式: 数组[索引]=具体数据或者变量;

数组遍历

遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印!

在Java当中,关于数组的一个长度属性,length

调用方式:数组名.length

 

遍历并打印数组

讯享网

小练习:定义一个数组存储1,2,3,4,5,6,7,8,9,10遍历数组得到每一个元素。
要求:
1,如果是奇数,则将当前数字扩大两倍
2,如果是偶数,则将当前数字变成二分之一

 

数组常见操作

1.求最值

 

2.遍历数组求和

需求:生成10个1~100之间的随机数存入数组。
1)求出所有数据的和
2)求所有数据的平均数
3)统计有多少个数据比平均值小

 

3.交换数组中的数据

需求:定义一个数组,存入1,2,3,4,5。按照要求交换索引对应的元素。

交换前:1,2,3,4,5

交换后:5,4,3,2,1

 

3.打乱数组数据

需求:定义一个数组,存入1~5。要求打乱数组中所有数据的顺序。

 

数组内存

Java内存分配

  • 栈 方法运行时使用的内存,比如main方法运行,进入方法栈中执行
  • 堆 存储对象或者数组,new来创建的,都存储在堆内存
  • 方法区 存储可以运行的class文件
  • 本地方法栈 JVM在使用操作系统功能的时候使用,和我们开发无关
  • 寄存器 给CPU使用,和我们开发无关

其中

栈:方法运行时使用的内存,比如main方法运行进入方法栈中执行
堆:new来创建的都存储在堆内存

在这里插入图片描述

main方法的内存图:

在这里插入图片描述

数组内存图

1.当定义一个数组

int[ ] arr=new int[2];

main在栈中定义变量arr,new在堆中开辟空间,并且将地址值给arr

在这里插入图片描述

2.两个数组指向同一个空间

int[ ]arr1 ={11,22};

int[ ]arr2 = arr1;

arr1和arr2记录同一个地址值

小讯
上一篇 2024-12-30 19:02
下一篇 2024-12-29 11:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/5123.html