【数组】
1. 数组概述
数组的概念:用来保存一组具有相同数据类型的数据的一种存储结构。
注意:数组也是一种数据类型,数组类型,属于引用数据类型
数组的定义语法:
1、 数据类型[ ] 数组名=new 数据类型[数组中存储数据个数];-----推荐使用该语法
2、 数据类型 数组名[ ]=new 数据类型[数组中存储数据个数];
获取数组的长度:数组名.length
获取数组元素:数组名[下标 ]
3、 数据类型[] 数组名={值1,值2,…值n};
4、 数据类型[] 数组名=new 数据类型[]{值1,值2,…值n};
2.数组原理内存图
内存概述
内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。Java虚拟机要运行程序,必须要对内存进行空间的分配和管理.
Java 虚拟机的内存划分
为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式
-
JVM 的内存划分
区域名称 | 作用 |
---|---|
寄存器 | 给CPU使用,和我们开发无关 |
本地方法栈 | JVM在使用操作系统功能的时候使用,和我们开发无关。 |
方法区 | 存储可以运行的class文件 |
堆内存 | 存储对象或者数组,new来创建的,都存储在堆内存 |
方法栈 | 方法运行时使用的内存,比如main方法运行,进入方法栈中执行 |
3. 数组元素的打印
向数组中插入一个元素
需求说明:按照如下操作向数组中插入元素,实现效果如图所示:
(1)将成绩保存在数组中;
(2)通过比较找到插入位置;
(3)该位置元素往后移一位;
(4)插入新成绩;
冒泡排序
需求说明:冒泡排序时注意以下关键点:
(1)5个数字如何存放:(数组,数组.length = 5)
(2)控制比较多少轮:(外层循环,循环变量 i)
(3)控制每轮比较多少次:(内层循环,循环变量 j)
(4)交换数据;
使用二重循环实现如图所示的冒泡排序。
Arrays类排序数组
需求说明:正确使用Arrays的sort()方法为数组进行排序,效果如下图所示。降序排列的写法可以参考for(int i=scores.length-1;i>=0;i--){}