IDEA创建Java项目和导入Module
具体步骤在这个文档里
https://pan.baidu.com/s/18xkvq5joJi5e-o12xZ3mlw
数组的定义和使用
1、数组的定义格式有哪些?
数组的定义格式
第一种:数据类型[]数组名
示例:int[]arr double[] arr char[] arr
第二种:数据类型数组名[]
示例:int arr[] double arr[] char arr[]
推荐使用第二种
◆数组的动态初始化格式
数组的动态初始化格式
数据类型 数组名[]=new 数据类型[数组长度];
示例:int arr[]=new int[5];
数组动态初始化格式的
每个内容代表含义详解
等号左边:
int:数组的数据类型
[]:代表这是一个数组
arr:代表数组的名称
等号右边:
new:为数组开辟内存空间
int:数组的数据类型
[]:代表这是一个数组
5:代表数组的长度
访问数组元素的格式是什么?
数组名[索引];
什么是索引?
索引是给每个元素起一个编号,通过编号可以获取指定元素
索引从几开始?
从0开始编号,最大取到数组长度-1
◆数组的静态初始化格式
数组静态初始化格式
完整版格式:数据类型 数组名[]=new 数据类型[]{元素.…}
简化版格式 :数据类型 数组名[]={元素};
推荐使用简化版格式
数组的两种初始化格式的区别
动态初始化:只给定数组长度,由系统分配默认初始化值;
静态初始化:创建数组时,直接将元素确定;
数组操作的两个常见小问题
1、什么情况下会出现索引越界异常?
2、什么情况下会出现空指针异常?
■数组索引越界异常
出现原因:访问了不存在的数组索引解决方案:改成正确的索引范围即可 (数组索引范围为0~数组长度减一)
数组空指针异常
出现原因:数组引用为null时,再去操作数组
boolean arr[]=null;
System. out. println(arr[0]);
解决方案:给数组一个真正的堆内存空间引用即可
数组的遍历
◆如何获取数组长度
◆如何遍历数组
获取数组长度
数组名.length
遍历数组的注意事项
注意循环次数是否在索引范围内,否则会发生索引越界
int arr[]={1,2,3};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
使用foreach遍历数组
int arr[]={1,2,3};
for (int i : arr) {
System.out.println(i);
}
注意foreach格式
for(要输出的数据类型 变量 : 要遍历的类型 变量)
{
System.out.println(变量);
}
获取数组最大值
获取数组最值的思路
最大值:
1.定义一个最大值变量,记录数组中第一个元素
2.遍历数组,分别和最大值变量进行对比3.如果当前元素比最大值变量要大,那么将当前元素为最大值变量重新赋值
最小值:
1.定义一个最小值变量,记录数组中第一个元素
2.遍历数组,分别和最小值变量进行对比
3.如果当前元素比最小值变量要小,那么将当前元素为最小值变量重新赋值
求数组最小值
double arr[]={2.3,4.5,6.4,5.6,7.9,1.8,8.5};
double min=arr[0];
for(inti=1;i<arr.length;i++){
if(min>arr[i]){
min=arr[i]
}
}
System. out. println(min);
求数组最大值
double arr[]={2.3,4.5,6.4,5.6,7.9,1.8,8.5};
double max=arr[0];
for(inti=1;i<arr.length;i++){
if(max<arr[i]){
max=arr[i]
}
}
System. out. println(min);
Java中的内存分配
◆Java中的内存分配介绍
◆数组的内存图解
Java中常见的内存分配有以下两种
(Stack)栈内存:存储局部变量的,使用后立即消失
(Heap)堆内存:存储的是new出来的内容,使用后变成垃圾口
数组的默认初始化值
整数类型:0
浮点类型:0.0
字符类型:空字符
布尔类型:false
引用类型:null
注意事项
数组下标索引 是从0开始 到数组长度-1 结束
扩展 使用foreach 遍历二维数组
int a[][]={{1,2,3},{4,5,6}};
for(int x[]:a){ //外层循环变量是一个一维数组
for(int n:x){
System.out.print(" "+n);
}
}