数组
数组
数据存储:
为了能够在内存中临时存储运行数据,学习了变量(可变的量,是程序在运行中单一数据的存储方式)。
为了能更复杂的存储数据,我们需要学习数组!
大多数程序员做的操作就是:日常CRUD
1. 理解数组的作用
**数组(数据的组合):**它是一组相同数据类型的组合。 (缺点:只能存储相同数据类型、长度不可变)
**例如:**存储多个成绩、存储多个人的姓名
在内存中是一连串的内存空间表示,它是有序的。
2. 掌握数组的定义
变量的三要素:变量的数据类型 变量名 变量值
类比变量,数组有四要素。
-
数组元素的数据类型
相同数据类型的数据。
**数值类型:**byte short int long float double
**非数值类型:**char boolean String
-
数组名(标识符)
和变量名的规范一致。
-
数组的元素
数组中存储的一个个变量。
-
数组的下标(索引)
数组是有序的,每一个元素都有一个固定的数组下标(序号)。 下标也是从0开始的。
**编程中的序号:**大多数场景下,都是从0开始计数(前期好多人的噩梦)
3. 掌握数组的基本使用
-
先声明 -> 分配空间 ->赋值
double[] scores;
scores = new double[5];
scores[0] = 12;
-
声明并分配空间 -> 赋值
String[] names = new String[3];
names[0] = “xxx”;
-
(前期比较常用)声明并直接赋值
char[] alpha = {‘a’,‘b’,‘c’}; // 它不能分成两条语句定义
boolean[] flags = new boolean[]{true,false,false};
数组的定义注意事项
-
数组只能存储相同数据类型的数据。
-
数组的长度一经指定无法改变。
-
数组的元素有默认值。
不同类型的数组元素有不同的默认值。
byte short int long默认值:0
float double 默认值:0.0
boolean 默认值:false
char 默认值:\u0000 空格
String(引用数据类型) 默认值:null 表示空 表示没有引用地址
4. 掌握数组的常用操作
数组的遍历: 将某个内容的所有值元素全部取出来的过程。
遍历方式1: 将循环变量i作为数组的下标值,可以通过此值来获取对应的元素。
// 使用普通循环来遍历 一般使用for
for(int i = 0; i < 数组的长度; i++){
数组名[i]
}
**遍历方式2:**增强for循环(foreach) 将数组中的每一个元素值都存储到临时变量中用来使用
for(数组元素类型 数组元素名 : 要遍历的数组名 ){
数组元素名
}
for(double score : scores){
score
}
5. 引用数据类型初识(面向对象阶段还会做第二次深入)
关于内存分配上的一个基本区别。
Java的程序在运行的时候,数据是按照不同的场景进行不同区域的存储的。
JVM有内存划分。(《深入JVM虚拟机》- 周志明 有一定基础之后看)
根据《Java虚拟机规范》的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter
Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method
Area)、堆(Heap)。
Java栈(stack)一般用于存放基本数据类型值。
Java堆(heap)一般用于存放引用数据类型值。
当在Java中存储一个基本数据类型和引用数据类型(数组)时有什么区别?(第一阶段了解即可)
掌握基本的加载过程,掌握基本的引用数据类型名词来源即可。
6. 作业
1.获取到数组中最大值和最小值的差值,要求:
定义main方法,方法内完成:
-
获取键盘录入的5个整数,并存放在int数组arr中,输入前提示输入的是第几个值;
-
分别获取数组中最大值和最小值,并计算差值;
-
输出差值。
2.获取数组中元素值为偶数的累加和与元素值为奇数的累加和,并计算出它们之间的差值,要求:
定义main方法,方法内完成:
-
获取键盘录入的5个整数,并存放在int数组arr中,输入前提示输入的是第几个值;
-
分别获取数组中元素的偶数和与奇数和;
-
输出偶数和与奇数和的差值
3.获取指定数组中大于指定整数的元素个数,要求如下:
定义main方法,方法内完成:
-
获取键盘录入的5个整数,并存放在int数组arr中,输入前提示输入的是第几个值;
-
键盘录入一个需要进行比较的整数num;
-
计算数组arr中比整数num大的元素个数