• JAVA_SE基础——19.数组的定义


    数组是一组相关数据的集合,数组按照使用可以分为一维数组、二维数组、多维数组

    本章先讲一维数组

    不同点:

    不使用数组定义100个整形变量:int1,int2,int3;;;;;;

    使用数组定义 int i[100]


    数组定义:int i[100],只是一个伪代码,只能表示含义的。




    一维数组

    可以存放上千万个数据,并且这些数据的类型是完全是相同的。

    定义数组

      方式1(推荐,更能表明数组类型)

      type[] 变量名 = new type[数组中元素的个数];

      比如:

      int[] a = new int[10];

      数组名,也即引用a,指向数组元素的首地址。

      方式2(同C语言)我认为搞JAVA的 还是建议用1,3 

      type变量名[] = new type[数组中元素的个数];

      如:

      int a[] = new int[10];

      方式3 定义时直接初始化

      type[] 变量名 = new type[]{逗号分隔的初始化值};

      其中红色部分可省略,所以又有两种:

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

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

      其中int[] a = new int[]{1,2,3,4};的第二个方括号中不能加上数组长度,因为元素个数是由后面花括号的内容决定的。

    数组长度

      Java中的每个数组都有一个名为length的属性,表示数组的长度。

      length属性是public final int的,即length是只读的。数组长度一旦确定,就不能改变大小。

    例如:int[] x=new int[5];    //通过new关键字创建了一个长度为5,元素类型是int的数组实体。

    1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。

    2、单精度浮点型(float)的基本类型变量的默认值为0.0f。

    3、双精度浮点型(double)的基本类型变量的默认值为0.0d。

    4、字符型(char)的基本类型变量的默认为 “/u0000”。

    5、布尔性的基本类型变量的默认值为 false。

    6、引用类型的变量是默认值为 null。

    7、数组引用类型的变量的默认值为 null。关键数组变量的实例后,如果没有没有显示的为每个元素赋值,Java 就会把该数组的所有元素初始化为其相应类型的默认值。


    下面用例子来看数组没有赋值的数组初始化值 ..

    class Shuzhu01 
    {
    	public static void main(String[] args) 
    	{
    		int[] x=new int[10];
    		float[] x1=new float[1];
    		double[] x2=new double[1];
    		char[] x3=new char[1];
    		boolean[] x4=new boolean[1];
    		System.out.println("int[] x="+x[0]);
    		System.out.println("int[] x1="+x1[0]);
    		System.out.println("int[] x2="+x2[0]);
    		System.out.println("int[] x3="+x3[0]);
    		System.out.println("int[] x3="+x4[0]);
    		System.out.println("x数组的长度是"+x.length);
    	}
    }

    结果如下图:



    如果在使用数组时,不想使用这些默认初始值,也可以为这些元素赋值。接下来通过一个案例来学习如何为数组元素赋值:

    public class Shuzu02 {
    	public static void main(String[] args) {
    		int[] arr = new int[4]; // 定义可以存储4个整数的数组
    		arr[0] = 1; // 为第1个元素赋值1
    		arr[1] = 2; // 为第2个元素赋值2
    		// 下面的代码是打印数组中每个元素的值
    		System.out.println("arr[0]=" + arr[0]);
    		System.out.println("arr[1]=" + arr[1]);
    		System.out.println("arr[2]=" + arr[2]);
    		System.out.println("arr[3]=" + arr[3]);
    	}
    }
    

    结果是:


    注意事项

    每个数组的索引都有一个范围,即0~length-1. 在访问数组的元素时,索引不能超出这个范围,否者程序会报错

    下面用一个例子来体现:

    public class ShuzuZhuyi01 {
    	public static void main(String[] args) {
    		int[] arr = new int[4];                     // 定义一个长度为4的数组
    		System.out.println("arr[0]=" + arr[4]); // 通过角标4访问数组元素
    	}
    }

    结果如下图:


    上图所提示的错误信息是 数组越界异常 ArrayIndexOut0fBoundsException  出现这个异常的原因是数组的长度为4,其索引范围为0~3     代码:

    System.out.println("arr[0]=" + arr[4]);

    就是访问arr[4]的元素时超出了数组的索引范围。


    在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常,接下来通过代码来体现下:

    public class ShuzuZuyi02 {
    	public static void main(String[] args) {
    		int[] arr = new int[3]; // 定义一个长度为3的数组
    		arr[0] = 5;	// 为数组的第一个元素赋值
    		System.out.println("arr[0]=" + arr[0]);	// 访问数组的元素
    		arr = null;		// 将变量arr置为null
    		System.out.println("arr[0]=" + arr[0]); 	// 访问数组的元素
    	}
    }

    结果是:


    arr = null;	
    为空后就会出现此提示:

    空指针异常 NullPointerException


    不懂的留言或者加企鹅吧654249738



  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 交换Easy
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法训练 矩阵乘方
    QT中给各控件增加背景图片(可缩放可旋转)的几种方法
    回调函数实现类似QT中信号机制
    std::string的Copy-on-Write:不如想象中美好(VC不使用这种方式,而使用对小字符串更友好的SSO实现)
  • 原文地址:https://www.cnblogs.com/Jhaiha0/p/8465327.html
Copyright © 2020-2023  润新知