Java基础

119 阅读3分钟

「这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战」。

数组

概述

数组:是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

数组本身是引府数据类型,而数组中的元素可以是任何数据类型包括基本数据类型和引用数据类型

常见概念

数组名

定义和标识符同

创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址

下标(索引)

从0开始

我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快

元素
数组长度

元素的个数

特点

数组是有序排列的

数组的长度一旦确定,就不能修改。

分类

按照维度:一维数组、二维数组、三维数组、...

按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)

一维数组

一维数组的定义和初始化

public class OneArray {
    public static void main(String[] args){
        int[] array;//声明数组,int指数组元素的类型
        //静态初始化:数组的初始化和数组元素的赋值同时进行
        array=new int[]{1001,1002,1003,1004};//注意数组本身是引用数据类型,需要加new
        String[] names1=new String[]{" "," "};//String不管输入什么都必须要有双引号
        //动态初始化:数组的初始化和数组元素的赋值分开进行
        String[] names=new String[5];//数组的初始化
        int[] array1=new int[5];
        //数组一旦初始化完成,其长度就确定了,且不可修改
    }
}

调用数组中指定位置的元素

//接上面 //调用数组指定位置的元素(通过下表方式调用)
        //数组的下标(角标、索引)是从0开始,到长度-1结束
        names[0]="li";//索引一般都是从0开始,除了数据库中的表从1开始(和数据库交互时不是0开始)
        names[1]="yu";
        names[2]="ze";
        names[3]="ha";
        names[4]="ha";//到4结束,定义长度为5

获取数组长度

//接上面
//获取数组的长度
        //属性:lengh
        System.out.println(names.length);//数组的长度是一个int型的值
        int lengths=names.length;
        System.out.println(lengths);

遍历数组

//接上面 
//如何遍历数组
        for(int i=0;i<names.length;i++){//注意没有=号
            System.out.println(names[i]);
        }

数组元素的默认初始化值

//接上面 
//数组元素的默认初始化值
      /**
         * 数组元素是整型:默认是0
         * 数组元素是浮点型:默认是0.0
         * 数组元素是char型:是0(ASCⅡ码值为0不是数字0、字符0)或’\u0000‘
         * 数组元素是boolean型:false(底层是0,与C中假为0类似)
         * 数组元素是引用数据类型:null(空)
         */
        int[] array0=new int[5];
        for(int i=0;i<array0.length;i++){
            System.out.println(array0[i]);//默认值是0
        }
        String[] array3=new String[5];//String是引用数据类型
        for(int i=0;i<array3.length;i++){
            System.out.println(array3[i]);//String类型默认值是null
        }
        char[] array4=new char[5];
        for(int i=0;i<array4.length;i++){
            System.out.println(array4[i]);//输出结果类似于空格(eclipse中),但不是,是0(ASCⅡ码值为0不是数字0、字符0)或’\u0000‘
            System.out.println("---"+array4[i]+"***");//IDEA中什么都没有,但有初始值(???)
        }
        if(array4[0]=='\0'){//验证char型,'\0','\u0000',0都可以输出nihao,而'0'不行
            System.out.println("nihao ");//说明是0(ASCⅡ码值为0)
        }
        if(array4[0]==0){
            System.out.println("nihao ");//说明是0
        }