java基础——数组

前言

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

常见概念:数组名,下标(索引), 元素 ,  数组长度

概述

1. 数组本身是引用数据类型,而数组中的元素可以是任意数据类型,包括基本数据类型和引用数据类型。

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

3. 数组的长度一旦确定,便不能修改

4. 可以通过下标(索引)来查找指定位置的元素

数组的分类

按照维度:一维数组,二维数组,三维数组。。。。

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

一维数组

正确的初始化:

int[] array; // 声明

array=new int[]{1,2,3,4,5}; // 静态初始化,即初始化和赋值同时进行

String[] str=new String[5]; // 动态初始化,即初始化和赋值过程分开进行

错误的写法:

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

int[] b=new int[];

int[5] c=new int[5];

数组的动态赋值

String str = new STring[5]; // 初始化一个数组

// 给数组赋值,数组下标是从0开始

str[0]="张三";

str[1]="里斯"

。。。。。// 长度不能超过数组定义的长度,eg:本例中数组长度为5,所以最大数组下标为4.

获取数组长度

【数组名】.length

数组的默认初始化值

整型:0

浮点型:0.0

char型:0 (注意此处零是这样的  ‘0’  它不等于0,是个字符型)

Boolean型:false

引用数据类型: null

二维数组

对于二维数组,可以看作是一维数组array1又增加了一个一维数组array2的元素而存在,从数组底层的运行机制来看,并没有多维数组

初始化

正确写法:

int[][] array=new int[][]{{1,2,3},{1,2},{1}}; // 静态初始化

int[][] a=new int[3][3];

int[][] b=new int[3][];

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

错误写法

int[][] a=new int[][3];

int[][] b=new int[][];

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

长度

【数组名】.length  获取的行有多少行。要想获取每一行有多少个元素则可以用  【数组名】[行下标].length

默认值

int[][] a=new int[3][3];

System.out.printf(a[0])  // 此项输出的是地址值  栈(地址值)与堆(对象)

System.out.printf(a[0][0]) // 输出0

特殊的:

int[][] a=new [3][];

System.out.printf(a[1]) // 输出为null

System.out.printf(a[1][0]) // 报错,空指针异常

解释上述第一个输出为什么是null?

因为没有定义内层元素的长度,存放在堆中的只有3个空的一维数组,而数组属于引用数据类型,所以为null

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容