数组的使用

文章内容输出来源:拉勾教育大数据开发高薪训练营

一、数组的概念:

☀ 数组:是一种容器,可以同时存放多个数据类型相同的值;

☀ 容器:将多个数据存储到一起,每个数据称之为元素;


二、数组的特点:

☀ 是引用类型;

☀ 数组中的数据类型必须统一;

☀ 数组长度在程序运行间不能改变;


三、java中的内存划分:

 


四、一维数组:

1. 一维数组的初始化(声明):

    1.1 动态初始化(指定长度):int []  array_name = new int [数组长度];

    1.2 静态初始化(指定内容):int []  array_name = new int [ ]{  元素1,元素2,.....  };

    1.3 省略的静态初始化:int []  array_name = {  元素1,元素2,.....  };

    注意:

/*  静态初始化可分为两步骤: */
int [] array;
array = new int[] {1,2};

/*  动态初始化可分为两步骤: */
int [] array;
array = new int[4];

/*  省略的静态初始化不可分步骤: */
int [] array;
array = {1,2};   //程序报错

2. 一维数组的访问: 

    通过下标访问数组,下标从0开始,范围在0~数组长度-1,访问方式为:数组名[下标];注意数组下标不能越界;

    当使用动态初始化数组,其中的元素会有默认值:

        a. 整数型:默认为 0;

        b. 浮点型:默认为 0.0;

        c. 字符型:默认为 '\u0000’;

        d. 布尔型:默认为 false;

        e. 引用型:默认为 null;

3. 一维数组的内存图:

 

程序的执行流程分析:

     - main方法进入方法栈执行;

     - 创建数组,JVM会在堆内存中开辟空间,存储数组;

     - 数组在内存中有自己的内存地址,以16进制表示;

     - 数组中有三个元素,默认值为0;

     - JVM将数组的内存地址赋给引用类型变量arr;

     - 变量array保存的是数组内存中的地址,而不是具体数值,因此成为引用数据类型;

 

问:为何要有栈内存与堆内存之分?

答:当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法中定义的变量都会逐个放入这块内存栈。随着方法执行的结束,这个内存栈也会自行销毁。因此,所有在方法中定义的局部变量都是放在栈内存中的;当我们在程序中创建一个对象时,这个对象将被保存在运行时数据区中,以便于能反复利用(因为创建对象的成本一般都比较大),这个程序运行时内存就是堆内存。堆内存中的队形对象不会随着方法的结束而销毁,及时方法结束后,这个对象可能被另一个引用变量所引用,则这个对象不会被销毁。只有当一个对象没有被任何的引用变量所引用时,java的垃圾回收机制才会在适当的时侯回收它。


五、二维数组: 

本质上就是多个一维数组组成的数组

1. 二维数组的初始化:

     - int [][] array_name = new int[ 行数 ][ 列数 ];

     - int [][] array_name = {  { value,value,......},{ value,value,....},........};

2. 二维数组合法的声明(6种):

    float[][] a = new float[6][];

    float[][] a = new float[6][6];

    float a[][] = new float[6][];

    float a[][] = new float[6][6];

    float []a[] = new float[6][];

    float []a[] = new float[6][6];

    总之,二维数组声明时必须知道行数

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值