ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] >[info]## **数组:** **概念:** &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;数组是一种容器,可以同时存放多个相同数据类型的数据 &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;数组是一种引用类型,其长度在程序运行期间不可以改变 <br> **特点:**      &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;1.数组是引用数据类型      &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;2.数组的长度是固定的,也就是说可以存储固定个数的数据      &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;3.数组中的元素的类型必须一致,也就是说数组中存储的多个数据的数据类型一致 **注意:** &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;数组有定长特性,长度一旦指定,不可更改。 &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;和水杯道理相同,买了一个2升的水杯,总容量就是2升,不能多也不能少。 <br> **初始化** **动态初始化**(指定长度): &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;格式: 数据类型 **[ ]** 数组名称 =new 数据类型[数据长度]; **左右俩侧数据类型必须相同。** <br> <br> ## **基本数据类型数组的3种赋值方式** ### 第一种赋值方式 ~~~ int[] arr = {1,2,3}; ~~~ ### 第二种赋值方式 ~~~ int[] arr2 = new int[]{1,2,3}; ~~~ ### 第三种赋值方式 ~~~ int[] arr3 = new int[3]; arr3[0] = 1; arr3[1] = 2; arr3[2] = 3; ~~~ ## **数组在内存中的展示** Java中有两种类型的数组: * 基本数据类型数组; * 对象数组; 当一个对象使用关键字“new”创建时,会在堆上分配内存空间,然后返回对象的引用,这对数组来说也是一样的,因为数组也是一个对象; ### 一维数组 ``` int[] arr = new int[3]; ``` 在以上代码中,arr变量存放了数组对象的引用;如果你创建了空间大小为3的整形数组,情况是一样的,一个数组对象所占的空间在堆上被分配,然后返回其引用; :-: ![](https://img.kancloud.cn/d2/29/d229b24b61fae7fe0fa13ed812ab9479_674x239.png) ## **数组调用和赋值** ``` public class day02_array{ public static void main(String [] args){ int [] arr = new int[3]; arr[0] = 10; arr[1] = 30; arr[2] = 50; System.out.println(arr[2]); } } ``` **运行结果**:50 <br> <br> ## **二维数组** ### 二维数组的概述: 二维数组其实就是一个元素为一维数组的数组; ### 格式1: * 数据类型\[\]\[\] 变量名=new 数据类型\[m\]\[n\]; m表示这个二维数组有多少个数组 n表示每一个一维数组的元素个数 * 举例: int\[\]\[\] arr=new int\[3\]\[2\]; 定义了一个二维数组arr 这个二维数组有3个一维数组,名称是ar\[0\],arr\[1\],arr\[2\] 每个一维数组有2个元素,可以通过arr\[m\]\[n\]来获取 ### 格式2: * 数据类型\[\]\[\] 变量名=new 数据类型\[m\]\[\]; m表示这个二维数组有多少个数组 这一次没有直接给出一维数组的元素个数,可以动态的给出 * 举例: ``` int[][] arr = new int[3][]; arr[0] = new int[2]; arr[1] = new int[3]; arr[2] = new int[1]; ``` ### 格式3: 数据类型\[\]\[\] 变量名=new 数据类型\[\]\[\]{{元素...},{元素...},{元素...}}; 也可以是: 数据类型\[\]\[\] 变量名={{元素...},{元素...},{元素...}}; 举例:int\[\]\[\] arr={{1,2,3},{4,6},{6}} 那么二维数组是如何存储的呢?事实上,在Java中只有一维数组,二维数组是一个存放了数组的数组,如下代码及示意图: ``` int[ ][ ] arr = new int[3][ ]; arr[0] = new int[3]; arr[1] = new int[4]; arr[2] = new int[5]; ``` :-: ![](https://img.kancloud.cn/6c/4c/6c4cdb81ddbc5939580aa8a79a51aa88_711x620.png) <br> <br>