java中的数组

什么是数组呢?

  数组是用来存储同一种数据类型多个元素的容器

    数据类型:可以是基本类型,也可以是引用类型

    容器:比如教室(有多个学生;多个桌子等),衣柜(放多个衣服)等,可以存放多个事物

数组的定义格式

  数组的定义格式一:

    数据类型[] 数组名= new 数据类型[长度]

例:

//定义一个长度为3的整型数组
int[] arr=new int[3];

  数组的定义格式二:

    数据类型[ ] 数据名 = new 数据类型[ ]{元素1,元素2,元素3...}

    好处:定义时元素时确定的,避免内存空间的浪费

例:

 

//定义一个长度为3的整型数组
int[] arr2 = new int[][1,2,3]

 

  数组的定义格式三

    数据类型[ ] 数组名 ={元素1,元素2,元素3....}

    格式三是格式二的变形,简化了代码编写 

例:

 

//定义一个长度为3的整型数组
int[] arr3 = {1,2,3}

 

定义格式详解

    数据类型:即数组中存储元素的数据类型,可以是基本数据类型,也可以是引用数据类型

    [ ]:表示数组

    数组名:数组的变量名,遵循标识符命名规范

    new :创建数组的关键字,通过new开辟内存空间

    长度:即数组长度,数组最多能够存放元素的个数。

    注意:数组长度在定义时指定,不可更改

数组的访问

  通过数组的索引访问数组的元素

  索引:也叫下标、脚标,是数组元素距离数组起始位置的偏移量。

     第一个元素的偏移量为0,所以数组的索引从0开始

  格式:数组名[索引]

     取值:数组名[索引]

     赋值:数组名[索引] = 值

例:

//定义一个长度为3的整型数组
int[ ] arr3 = {1,2,3};
System.out.print(arr3[0]); //输出:1

 

//定义一个长度为3的整型数组
int[] arr3 ={1,2,3};
arr3[1] =4;   //给第2个元素赋值为4
System.out.print(arr3[1]); //输出:4

 数组的初始化

  在内存中为数组开辟连续空间并为每个元素赋值的过程

    内存:计算机的重要组件,用于程序运行中临时存储的数据。

    连续空间:数组元素在内存空间中的存放位置是连续的

  而在数组的初始化中只要分为两种状态

    动态初始化:只指定长度,由系统给出默认值,比如数组的格式定义一

      整型:0

      浮点型:0.0

      字符型:‘\u0000’(空字符串)

      布尔型:false/true

      引用类型:null

    静态初始化:给出初始化值,由系统决定数组长度,比如数组的格式定义一,二

java程序的内存分配

  方法区:存储可运行的class文件,包含方法,静态成愿,常量等

   栈:方法运行时使用的内存,特点是”先进后出“,即最先进入栈区的方法最后出栈,比如main方法

  :存储new出来的数组或对象

   本地方法栈:JVM在调用操作系统功能时使用,与开发无关

   寄存器:CPU使用,与开发无关

   数组类型:变量arr存储的是数组在堆内存中的地址值,而不是数组元素的值,变量arr通过内存地址引用堆内存中的数组,所以

数组是引用类型

 

数组使用中常见的两个问题   

  数组索引越界异常:ArrayIndexOutOfBoundsException

    当访问了不存在的索引时(比如:数组的长度为3(0,1,2),而去访问这个数组下标为3的元素)

    异常:即非正常情况,可以简单理解为程序运行过程中出现错误

  空指针异常:NullPointerException

    数组引用存储的值为null而非数组的地址时

例:

int[] arr1 =new int[3];
arr1[0] =1;
arr1[1] =2;
arr1[2] =3;
System.out.println(arr1[0]);   //1
System.out.println(arr1[1]);   //2
arr1=null;
System.out.println(arr1[2]);  //报错

 引用类型和基本类型的区别

  基本类型的变量作为参数传递时,传的是”

  引用类型的变量作为参数传递时,传的是”地址值

  

 

posted @ 2021-01-04 11:50  飞天神猫丶  阅读(133)  评论(0编辑  收藏  举报