zoukankan      html  css  js  c++  java
  • 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



  • 相关阅读:
    JS的toFixed方法设置小数点位数后再进行计算,数据出错问题
    表单input项使用label,同时引用Bootstrap库,导致input点击效果区增大
    表单多文件上传样式美化 && 支持选中文件后删除相关项
    Fiddler使用AutoResponder进行本地文件和线上文件的映射
    ES6笔记(7)-- Promise异步编程
    ES6笔记(6)-- Set、Map结构和Iterator迭代器
    ES6笔记(5)-- Generator生成器函数
    ES6笔记(4)-- Symbol类型
    ES6笔记(3)-- 解构赋值
    ES6笔记(2)-- let的块级作用域
  • 原文地址:https://www.cnblogs.com/Jhaiha0/p/8465327.html
Copyright © 2011-2022 走看看