Java基础--03 数组

数组
数组的定义:数组是一个存储固定长度元素数据的容器,要保证多个数据的类型一致
数组格式
①数组存储的数据类型[ ] 数组名字 = new 数组存储的数据类型[长度]

	例如 int[ ] arr = new int[3];

②数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3}

     例如 int [] arr = new int[]{1,2,3,4}

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

  例如 int [] arr = {1,2,3}

数组有固定长度,长度确定后不能更改
数组的访问:数组的访问是依靠索引来访问的
索引(index):每一个存储进数组内部的元素都有自己的编号,从第一个数据开始,索引为0,往后有多少数据,就自动增长
数组的长度为:数组名称.length,执行的结果为数组的长度,数组的最大索引值为 数组名.length-1
访问数组内的元素
数组名[索引] = 数值,这个是为数组赋值
数据类型 变量 = 数组名[索引],获取数组中的元素

     	  public static void main(String[] args) { 
	//定义存储int类型数组,赋值元素1,2,3,4,5 
	int[] arr = {1,2,3,4,5}; 
	//为0索引元素赋值为6 
	arr[0] = 6; 
	//获取数组0索引上的元素 
	int i = arr[0]; 
	System.out.println(i);
	 //直接输出数组0索引元素 	System.out.println(arr[0]); }

数组原理内存
java虚拟机内存划分
JVM内存划分
寄存器:给cpu使用,和开发无关
本地方法栈:操作系统功能时使用,开发无关
方法区:存储时可以运行的class文件
堆内存:存储对象或者数组,new来创建的,都存储在堆内存里面
方法栈:方法运行时使用的内存,比如main方法运行时,进入方法栈运行

数组越界异常:ArrayIndexOutOfBoundsException
访问了不存在的索引,就会抛出这个异常
空指针异常:
NullPointerException
保存了数值为NULL的数据,会导致空指针异常
数组遍历
遍历:就是把数组中的每个元素都或取出

例如public static void main(String[] args) {
int [] arr = {1,2,3,4,5}
for(int i = 0; i < arr.length; i++){
 System out println(arr[i])
 	}
 }

数组中获取最大值元素

	public class demo1 {
public static void main(String[] args) {
    //定义数组
int[] arr = {1,2,3,4};
//定义变量保存数组中的索引为0的元素
int max = arr[0];
//遍历数组,分别取出每个元素
    for (int i = 0; i <arr.length ; i++) {
        //遍历到的元素和索引0的比较,如果数组元素大于max,max记录最大值
        if (arr[i]>max){
            max = arr[i];
        }
    }

    System.out.println(max);
}

}
数组反转
数组反转:数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1

public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
/*循环中定义变量min=0最小索引 max=arr.length‐1最大索引 min++,max‐‐ */ 
for (int min = 0, max = arr.length ‐ 1; min <= max; min++, max‐‐) { //利用第三方变量完成数组中的元素交换
 int temp = arr[min]; 
 arr[min] = arr[max];
arr[max] = temp; }
// 反转后,遍历数组 
for (int i = 0; i < arr.length; i++) {
 System.out.println(arr[i]);
  } }

数组作为方法的参数和返回值
数组作为方法参数:

 例如public static void main(String[] args) { 
 int[] arr = { 1, 3, 5, 7, 9 }; 
 //调用方法,传递数组
printArray(arr); 
}
 /* 创建方法,方法接收数组类型的参数 进行数组的遍历 */
public static void printArray(int[] arr) { 
for (int i = 0; i < arr.length; i++) { 
System.out.println(arr[i]); 
} }

数组作为方法的返回值:数组作为方法的返回值,返回的是数组的内存地址

public static void main(String[] args) { 
//调用方法,接收数组的返回值 
//接收到的是数组的内存地址 
int[] arr = getArray();
 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]);
} }
/*创建方法,返回值是数组类型 return返回数组的地址 */
public static int[] getArray() {
 int[] arr = { 1, 3, 5, 7, 9 }; 
 //返回数组的地址,返回到调用者 
 return arr;
  }

方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值