java数组

数组概念:

         在计算机中分配多个连续的存储空间

         使用存储空间本质上是使用值。

定义数组的语法:

获得连续存储空间的方式:

动态定义:

定义的同时赋值:

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

先定义后赋值:

         数据类型[] 数组名;

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

静态定义:

复杂下写法:

定义的同时赋值:

         数据类型[] 数组名 = new 数据类型[]{值,值,........};

先定义后赋值:

数据类型[] 数组名;

         数组名 = new 数据类型[]{值,值,........};

简写方式:

定义的同时赋值:(常用)

         数据类型[] 数组名 = {值,值,........};

先定义后赋值:

语法不允许

认识数组:

定义一个数组:int[] arr = new int[6];

int[]:数据类型:int类型的数组,类型!

arr:数组名:变量:数组是引用数据类型,存的是地址!

6:是数组长度

数组每个存储空间里面存储的值:值:元素..

存值语法:

                  数组名[索引值]=值;

取值语法:

                  数组名[索引值];

注意:

数组名:本质上也是一个变量,存的是地址值

数据类型[]:数据类型为数组类型,表示对应数据类型的数组类型 (当为动态定义时 int的默认值是0 String的默认值是null)

静态定义的长度根据值的个数确定

特点:

1.索引值是从0开始的,最大索引值,为长度减1

2.数据类型,限定了数组存储空间,可以存储放值的类型

3.连续存储空间,会根据数据类型,分配默认值

引用数据类型的默认值是null,基本数据类型的默认值是0.

4.数组一旦定义好了,长度不变

堆栈分析:JVM内存图:

栈:保存是变量。数组名和地址

堆:凡是new出来都在里面

作用:分析引用数据类型......学习的类,会经常用过堆栈分析

数组的常见问题:

1.数组越界:当取值或查值索引的大小大于或者等于数组的长度时

2.空指针异常int[] arr = null;   arr.length相当于null.length,其他数据类型也会出现

3.return不知道如何写返回值

二维数组(了解):

一个数组中保存的是一个一维数组:三维,四维数组类似

二维数组定义的语法:

动态定义:数据类型[][] arr = new 数据类型[长度1][长度2];

长度1:二维数组中,保存一维数组的个数.

长度2:二维数组中一维数组的长度

静态定义:数组类型[][]arr ={{1,2,3},{4,5,6},{7,8,9}};

值传递值引用:

值传递:形式参数类型是基本数据类型

值引用:形式参数类型是引用数据类型

基本数据来说:传递是值,方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容。

引用数据来说:传递的是对值的引用!,传递的是地址值。方法调用是,实际参数是数组,这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作

posted @ 2018-02-08 17:41  华山小叮当  阅读(203)  评论(0编辑  收藏  举报