Loading

Java_数组

Java_数组

数组的定义

静态初始化数组

定义数组的时候直接给数组赋值。

静态初始化数组的格式:

// 完整格式
数据类型[] 数组名 = new 数据类型[]{元素1,元素2 ,元素3… };
double[] scores = new double[]{89.9, 99.5, 59.5, 88.0};
int[] ages = new int[]{12, 24, 36};

// 简化格式
数据类型[] 数组名 = { 元素1,元素2 ,元素3,… };
int[] ages = {12, 24, 36};

注意:数组变量名中存储的是数组在内存中的地址,数组是引用类型。

数组的动态初始化

定义数组的时候只确定元素的类型和数组的长度,之后再存入具体数据。

数组的动态初始化格式:

数据类型[] 数组名 = new 数据类型[长度];
int[] arr = new int[3];
//	后赋值
arr[0] = 10;
System.out.println(arr[0]); 	// 10

动态初始化数组的默认值

数据类型 明细 默认值
byte、short、char、int、long 0
基本类型 float、double 0.0
boolean false
引用类型 类、接口、数组、String null

两种初始化的的使用场景总结、注意事项说明:

  • 动态初始化:只指定数组长度,后期赋值,适合开始知道数据的数量,但是不确定具体元素值的业务场景。
  • 静态初始化:开始就存入元素值,适合一开始就能确定元素值的业务场景。
  • 两种格式的写法是独立的,不可以混用。
int[] arrs = new int[3]{30,40,50};	//报错

数组的内存图

在这里插入图片描述

数组使用常见问题

  • 问题1:如果访问的元素位置超过最大索引,执行时会出现ArrayIndexOutOfBoundsException(数组索引越界异常)
  • 问题2:如果数组变量中没有存储数组的地址,而是null, 在访问数组信息时会出现NullPointerException(空指针异常)
int[] arr = new int[]{11, 22, 33};
System.out.println(arr[2]);
// System.out.println(arr[3]) 
// 出现ArrayIndexOutOfBoundsException异常

arr = null;
System.out.println(arr); // null
// System.out.println(arr.length) 
// 出现NullPointerException异常

Debug工具的使用

Debug工具

  • IDEA自带的断点调试(排错)工具,可以控制代码从断点开始一行一行的执行,然后详细观看程序执行的情况。

DEBUG工具基本使用步骤

  1. 在需要控制的代码行左侧,点击一下,形成断点
  2. 选择使用Debug方式启动程序,启动后程序会在断点暂停
  3. 控制代码一行一行的往下执行
posted @ 2021-11-29 19:37  zhangj9  阅读(41)  评论(0)    收藏  举报