2019年7月13日星期六
17时54分5秒
第14节数组
目录
1_1_14_01_数组的概念 2
1_1_14_02_数组的定义格式一_动态 2
1_1_14_03_数组的定义格式二_静态 3
1_1_14_04_数组的定义格式三_省略的 4
1_1_14_05_访问数组元素进行获取 5
1_1_14_06_访问数组元素进行赋值 6
1_1_14_07_Java中的内存划分 7
1_1_14_08_一个数组的内存图 7
1_1_14_09_两个数组的内存图 8
1_1_14_10_两个引用指向同一个数组的内存图 10
1_1_14_11_常见问题_数组索引越界异常 11
1_1_14_12_常见问题_空指针异常 14
1_1_14_13_获取数组的长度 16
1_1_14_14_数组的遍历输出 17
1_1_14_15_求出数组中的最值(比武招亲) 19
1_1_14_16_数组元素反转 21
1_1_14_17_数组作为方法参数_传递地 25
1_1_14_18_数组作为方法返回值_返回 26
扩展: 冒泡排序 27
1_1_14_01_数组的概念
数组: 是一种容器,可以同时存放多个数据值
数组的特点:
1. 数组是一种引用数据类型
2. 数组当中的多个数据,类型必须统一
3. 数组的长度在程序运行期间不可改变
1_1_14_02_数组的定义格式一_动态
package cn.itcast.day05.demo01;
/*
数组: 是一种容器,可以同时存放多个数据值
数组的特点:
1. 数组是一种引用数据类型
2. 数组当中的多个数据,类型必须统一
3. 数组的长度在程序运行期间不可改变
数组的初始化: 在内存当中创建一个数组,并且向其中赋予一些默认值。
两种常见的初始化方式:
1. 动态初始化(指定长度)
2. 静态初始化(指定内容)
动态初始化数组的格式;
数据类型[] 数组名称 = new 数据类型[数组长度];
解析含义:
左侧数据类型: 也就是数组当中保存的数据,全部是统一的什么类型
左侧的中括号: 代表我是一个数组
左侧数组名称: 给数组取一个名字
右侧的new: 代表参加数组的动作
右侧数据类型: 必须和左边的数据类型保存一致
右侧中括号的长度: 也就是数组当中,到底可以保存多少个数据,是一个int数字
*/
public class Demo01Array {
public static void main(String[] args) {
// 创建一个数组,里面可以存放300个int数据
// 格式: 数据类型[] 数组名称 = new 数据类型[数组长度];
int[] = new int[300];
// 创建一个数组: 能存放10个double类型的数据
double[] arrayB = new double[10];
// 创建一个数组,能存放5个字符串
String[] arrayC = new String[5];
}
}
**1_1_14_03_数组的定义格式二_静态**
package cn.itcast.day05.demo01;
/*
动态初始化: 在创建数组的时候,直接指定数组当中的数据元素个数。
静态初始化: 在创建数组的时候,不直接指定数据个数多少,而是直接将具体的数据内容进行指定
静态初始化基本格式:
数据类型[] 数组名称 = new 数据类型[] { 元素1, 元素2, ... };
注意事项:
虽然静态初始化没有直接告诉长度,但是根据大括号里面的元素具体内容,也可以自动推算出来长度
*/
public class Demo02Array {
public static void main(String[] args) {
// 直接创建一个数组,里面装的全都是int数字,具体为: 5、15、25
int[] arrayA = new int[] { 5, 15, 25 };
// 创建一个数组,用来装字符串: "Hello"、"World"、"java"
String[] arrayB = new String[]{ "Hello", "World", "java" };
}
}
**1_1_14_04_数组的定义格式三_省略的**
package cn.itcast.day05.demo01;
/*
使用静态初始化数组的时候,格式还可以省略一下。
标准格式:
数据类型[] 数组名称 = new 数组类型[]{ 元素1, 元素2, ...};
省略格式:
数据类型[] 数组名称 = { 元素1, 元素2, ...};
注意事项:
1. 静态初始化没有直接指定长度,当是仍然会自动推算得到长度。
2. 静态初始化标准格式可以拆分为两个步骤。
3. 动态初始化也可以拆分为两个步骤。
4. 静态初始化一旦使用省略格式,就不能拆分成为两个步骤了
使用建议:
如果不确定数组当中的具体内容,用动态初始化,否则,已经确定了具体的内容,用静态初始化。
*/
public class Demo03Array {
public static void main(String[] args) {
// 省略格式的静态初始化
int[] arrayA = { 10, 20, 30 };
// 静态初始化的标准格式,可以拆分为两个步骤
int[] arrayB;
arrayB = new int[] { 11, 21, 31 };
// 动态初始化也可以拆分为两个步骤
int[] arrayC;
arrayC = new int[5];
// 静态初始化的省略格式,不能拆分成为两个步骤。
// int arrayD;
// arrayD = { 10, 20, 30 };
}
}
1_1_14_05_访问数组元素进行获取
package cn.itcast.day05.demo01;