Java基础-数组(06)

数组是存储多个变量(元素)的东西(容器),这多个变量的数据类型要一致

数组概念

数组是存储同一种数据类型多个元素的容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。

数组的定义格式

格式1:数据类型[] 数组名;    
格式2:数据类型 数组名[];
注意:这两种定义做完了,数组中是没有元素值的.

举例:

int[] arr; 定义一个int类型的数组,数组名是arr(推荐)
int arr[];定义了一个int类型的变量,变量名是arr数组

数组初始化概述:

Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。

数组的初始化方式

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。

动态初始化

数据类型[] 数组名 = new 数据类型[数组长度];
/*左边:
 *        int:说明数组中的元素类型是int类型
 *        []:说明这是个数组
 *        arr:数组名称
 *右边:
 *        new:为数组申请内存分配,开辟空间
 *        int:说明数组中的元素类型是int类型
 *        []:说明这是一个数组
 *        3:数组的长度,其实就是数组中元素的个数

访问数组:

数组名[索引]    //索引从零开始

静态初始化

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,......};
数据类型[] 数组名 = {元素1,元素2,元素3,......};
例如:
      int[] arr = new int[]{1,2,3};
      int[] arr = {1,2,3};

Java中的内存分配

Java 程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

 

栈 (存储局部变量)
堆 (存储new出来的东西)
方法区 
本地方法区 (和系统相关)
寄存器 (给CPU使用)

    栈:存储的是局部变量.局部变量就是定义在方法中的变量.使用完毕,立即回收.

    堆:存储的是new出来的东西,实体,对象.

      A.每一个对象都有地址值

      B.每一个对象的数据都有默认值

        byte,short,int,long   0

        float,double   0.0

        char 'u0000'

        boolean flase

        引用类型 null

      C.使用完毕后,会在垃圾回收器空闲的时候被回收

int[] arr = new int[3];
int[] arr2 = arr;
arr2[0]=100;
arr2[1]=200;
arr2[2]=300;

 二维数组

定义格式
数据类型[][] 数组名;
数据类型 数组名[][]; 不推荐
数据类型[] 数组名[]; 不推荐
初始化方式
数据类型[][] 变量名 = new 数据类型[m][n];
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化版格式:数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};

二维数组配合索引可以获取到每一个一维数组。

每一个一维数组配合索引名可以获取到数组中的元素。

假如二维数组名:arr
获取一维数组:arr[索引]
获取二维素组中的元素: arr[索引][索引]
原文地址:https://www.cnblogs.com/aeolian/p/7726985.html