专业的JAVA编程教程与资源

网站首页 > java教程 正文

java基础数组的静态初始化 数组内存图解,异常,遍历 接上篇文档

temp10 2024-10-23 15:04:15 java教程 11 ℃ 0 评论

动态初始化:

初始化时只指定数组长度,

java基础数组的静态初始化 数组内存图解,异常,遍历 接上篇文档

由系统为数组分配初始值

静态初始化:

初始化时指定每个数组元素的初始值,

由系统决定数组长度。

格式:

m:长度值

动态:

数据类型[] 数组名 = new 数据类型[m];

静态:

数据类型[] 数组名 = new 数据类型[]{元素值,...};

静态简化写法:

数据类型[] 数组名 = {元素值,...};

推荐使用简化写法

*/

class ArrayDemo01{

public static void main(String[] args) {

int[] arr = new int[]{1,2,3};

System.out.println("arr:"+arr);//地址值

System.out.println("arr[0]:"+arr[0]);//1

System.out.println("arr[1]:"+arr[1]);//2

System.out.println("arr[2]:"+arr[2]);//3

int[] arr2 = {4,5,6};

System.out.println("arr2:"+arr2);//地址值

System.out.println("arr2[0]:"+arr2[0]);//4

System.out.println("arr2[1]:"+arr2[1]);//5

System.out.println("arr2[2]:"+arr2[2]);//6

}

}

图解:

/*

ArrayIndexOutOfBoundsException:数组越界异常

原因:访问了不存在的数组索引元素

NullPointerException:空指针异常

原因:数组引用没有指向实体,

却在操作实体中的元素时

*/

class ArrayDemo02{

public static void main(String[] args) {

int[] arr = new int[3];

arr[0]=10;

arr[1]=20;

arr[2]=30;

System.out.println(arr[0]);//10

System.out.println(arr[1]);//20

System.out.println(arr[2]);//30

//System.out.println(arr[3]);//数组越界了

int[] arr2 = null;

System.out.println(arr2);

System.out.println(arr2[0]);

}

}

/*

*数组遍历(依次输出数组中的每一个元素)

*

* 分析:

* 1一个数组,你要访问每一个元素

* 那么就得通过访问数组的每一个元素的

* 索引下标

*

* 2而索引下标是变幻的且有规律的

* 从0开始,每次+1

*

* 3所以索引的值就可以用循环中的变量控制

*

*

*/

class ArrayTest01{

public static void main(String[] args) {

int[] arr = {1,2,3,4};

printArray(arr);

printArray2(arr);

printArray3(arr);

//访问每一个元素,必须能做到

// System.out.println(arr[0]);

// System.out.println(arr[1]);

// System.out.println(arr[2]);

// System.out.println(arr[3]);

// System.out.println("-----");

// // 这种方法不太好,代码重复度太高,

// // 如果数组中有一万个元素呢?

// //

// // 代码重复高的时候,我们就要考虑循环了

// //

// // 循环第一版:

// for (int i=0;i<=3 ;i++ ) {

// System.out.println(arr[i]);

// }

// //在这儿我们是知道数组的长度,

// //如果我们 不知道数组的长度呢?

// //java中提供一个东西,叫做length

// //length就能够拿到数组的长度

// System.out.println("arr的数组长度:"+arr.length);

// // for循环改进版:

// for (int i=0;i<arr.length ;i++ ) {

// System.out.println(arr[i]);

// }

}

public static void printArray(int[] arr){

// 这是纯碎的输出数组中的每一个元素

for (int i=0;i<arr.length ;i++ ) {

System.out.println(arr[i]);

}

}

public static void printArray2(int[] arr){

// 这是输出数组元素+格式

System.out.print("{");

for (int i=0;i<arr.length ;i++ ) {

if (i==arr.length-1) {

System.out.println(arr[i]+"}");

}else{

System.out.print(arr[i]+",");

}

}

}

public static void printArray3(int[] arr){

// 输出数组中索引值为偶数的元素值

for (int i=0;i<arr.length ;i+=2 ) {

System.out.println(arr[i]);

}

}

}

/*

数组获取最值(获取数组中的最大值)

分析:

1.首先要一个数组int[] arr ={1,2,3,4}

2.这个数组中每一个元素都要拿来对比

3.先定义一个变量用来保存最大值

假设:这个最大值就是0

o<1,那么我就要把1赋值给这个最大值变量

4.循环比较每一个值

5.最终输出最大值

*/

class ArrayTest02{

public static void main(String[] args) {

int[] arr ={-11,-22,-3,-4,-10};

int max=getMax(arr);

System.out.println("数组最大值:"+max);

}

// 方法两个明确:

// 返回值类型:int

// 参数列表:

public static int getMax(int[] arr){

//int max=0;定义0不好,无法比较负数

int max=arr[0];//那数组第一个元素做初始最大值

for (int i=0;i<arr.length ; i++) {

if (arr[i]>max) {

max=arr[i];

}

}

return max;

}

}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表