欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java学习的第九天(JavaSE基础05_数组)

程序员文章站 2024-02-01 08:15:46
...

一、数组

1.什么是变量??
1.定义:变量是在内存中开辟了一小块空间用来临时存储“一个”数据用的
2.变量在内存中是分布凌乱的
3.变量没有默认值
	package com.shuzu;
	
	public class Demo1_MoRenZhi {
	    public static void main(String[] args) {
	        int a;
	        System.out.println(a);
	    }
	}
    //运行结果:Error:(6, 28) java: 可能尚未初始化变量a
2.数组为什么会存在?它来自何方?(跟变量进行区分)

Java学习的第九天(JavaSE基础05_数组)

3.什么是数组??
1.定义:数组是内存中开辟了一块“连续”的空间用于临时存储“多个同种数据类型”的数据用的
2.它是存在默认值的
	2.3.整数类型的默认值都是0
	2.4.小数类型的默认值是0.0
	public class Demo1_MoRenZhi {
	    public static void main(String[] args) {
	        float[] arr=new float[3];
	        System.out.println(arr[0]);
	    }
	}
	//运行结果:0.0
	2.5.字符类型的默认值是空字节
	public class Demo1_MoRenZhi {
	    public static void main(String[] args) {
	        char[] arr=new char[3];
	        System.out.println(arr[0]);   //
	    }
	}
	//运行结果:空
	2.6.String类型的默认值是null
	//运行结果:null
4.如何定义数组??
1.动态声明(分为两步)
	第一步:数据类型[ ]  数组名;   //在内存中开辟了一个数组
	第二步:数组名=new  数据类型[长度];   //给数组赋予一个长度
	int[] arr;
	arr=new int[3];
//两者合二为一:int[] arr=new int[3];

2.静态声明
	数据类型[ ]  数组名=new 数据类型[ ]{值1,值2,...}
	int[] arr=new int[]{1,2.3,4};
	上述可以缩写,这是开发中最常用的写法,如下所示
	数据类型[ ]  数组名={值1,值2,...}
	int[] arr={1,2.3,4};

3.拓展:数组的另外的两种写法
	int arr[]=new int[3];
	int []arr=new int[3];
5.如何往数组中存值??
通过数组名[下标]
arr[0]=60;
arr[1]=70;
6.如何从数组中取值??
通过数组名[下标]
System.out.println(arr[0]);
7.数组的下标(角标/索引)
1.数组只要赋予了长度,那么数组就会有下标(角标/索引)
2.程序中下标都是从0开始
3.数组存放数据和取数据都是通过下标来进行的
	数组下标:0|1|2|3|4|5|6|7|8      
	存数据:arr[0]=10;  取数据: int a=arr[0]
8.在数组中最容易出现的两种异常和错误

ArrayIndexOutOfBoundsException:下标越界异常

public class Demo_ArrayIndexOutofBounds {
    public static void main(String[] args) {
        int[] arr=new int[3];
        arr[0]=1;
        arr[1]=2;
        arr[2]=3;
        System.out.println(arr[3]);//这里只有三个元素,下标从0-2,而下标到3就会报下标越界异常
    }
}
//输出结果:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
	at com.shuzu.Demo_ArrayIndexOutofBounds.main(Demo_ArrayIndexOutofBounds.java:9)

NullPointerException:空指针异常

public class Demo_NullPointerExecption {
    public static void main(String[] args) {
        int[] arr=new int[3];
        int[] arr1=null;
        arr=arr1;
        System.out.println(arr[0]);
        System.out.println(arr[2]);
        System.out.println(arr[3]);
    }
}
//输出结果:
Exception in thread "main" java.lang.NullPointerException
	at com.shuzu.Demo_NullPointerExecption.main(Demo_NullPointerExecption.java:8)
9.为什么会出现空指针异常??
9.1 Java内存分布图

Java学习的第九天(JavaSE基础05_数组)

9.2 输出数组名实际输出的内容是什么??
public class Demo_DiZhi {
    public static void main(String[] args) {
        int[] arr={1,2,3,4,5,6,7};
        System.out.println(arr);
    }
}
//输出结果:[aaa@qq.com地址值
9.3 动态定义数组时,存储在堆内存还是栈内存中??

Java学习的第九天(JavaSE基础05_数组)

10.如何获取数组的长度
String[] arr={"张三,李四,王五"};   //这个数组的长度是多少??  1
String[] arr={"张三","李四","王五"};  //这个数组的长度是多少?? 3
如何获取数组的长度---数组名.length
arr.length
11.数组的第一个元素arr[0]
12.数组的最后一个元素arr[arr.length-1]
13.感受如下数组的定义
double[] arr={1.1 ,1.2 ,1.3 ,1.4 ,5};   //因为double比int要大,所以会自动转换,这里不会报错
int[] arr={1 , 2 , 3 , 4 ,(int) 5.5};    //这里必须用到强转才可以
14.如何获取数组中的每一个元素

重复做一件事情--循环数组/遍历数组(获取数组的长度去遍历数组)

for(int i=0;i<arr.length;i++){
	System.out.println(arr[i]);
}
15.二维数组
由于实际企业中开发一般不会使用数组,多用集合,所以不做过多讲解
int[] [] arr=new arr[长度][长度];  //第一个长度值必须要写,第二个长度可给值也可以不给值
最后:下一节中小编会对数组涉及的一些常用的算法进行讲解!!

上一篇: Promise.all 并发限制

下一篇: