• 4_数组及其在内存中的分配


    1.一维数组

    ● 数组概念:数组是储存同一种数据类型多个元素的集合。也可以看成是一个容器。它既可以存储基本数据类型,也可以存储引用数据类型。

    ● 定义格式1: 数据类型[] 数组名;

            格式2: 数据类型 数组名[];

    ● 数组的初始化、动态初始化

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

      初始化分类:

      (1)动态初始化:只指定长度,由系统给出初始化值;

      (2)静态初始化:给出初始化值,由系统决定长度。

      注意:这两种方式只能用一种,不能进行动静结合。

      静态初始化有两种方式,具体格式如下:

      (1)数据类型[] 数组名 = new 数据类型[]{元素,元素,……};

      (2)数据类型[] 数组名 = {元素,元素,元素,……};   

      动态初始化格式:

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

        数组长度其实就是数组中元素的个数。

    ● 数组操作的常见问题:

    NullPointerException: 空指针异常

    ArrayIndexOutOfBoundsException: 数组越界异常

    2.二维数组

    格式1:数据类型[][] 变量名 = new 数据类型[m][n];

      m表示这个二维数组有多少个一维数组,n表示每一个一维数组的元素个数。

      以下格式也可以表示二维数组(不推荐使用)

        a.数据类型 数组名[][] = new 数据类型[m] [n];

        b.数据类型[] 数组名[] = new 数据类型[m] [n];

    格式2:数据类型[] [] 变量名 = new 数据类型[m] [];

    格式3:数据类型[] [] 变量名 = new 数据类型[] []{{元素···},{元素···}....}

    3.数组在内存中的分配

    栈:存放局部变量

      局部变量:在方法定义中或者方法声明上的变量。

    堆:存放的是所用new出来的东西,容器或对象

      特点:(1)每一个new出来的东西都会为其分配一个地址值;

         (2)每一个变量都有一个默认的值

          byte,short,int,long--0

          float,double---0.0

          char--‘u0000’

          boolean--false

          引用数据类型--null

         (3)使用完毕就变成了垃圾,等待垃圾回收器对其回收。

    方法区:运行时期 class 文件进入的地方

    本地方法区(和系统有关):JVM 调用了系统中的功能

    寄存器(CPU使用):内存和 CPU 之间

    转自51博客作者zxueb的原创作品--数组及其在内存中的分配

  • 相关阅读:
    类的高内聚低耦合
    面向对象是三个特征:封装、继承、多态
    抽象类和接口
    remoting和webservice
    装箱和拆箱
    数据库
    遍历TextBox控件
    索引类型
    .NET和C#有什么区别
    三层架构
  • 原文地址:https://www.cnblogs.com/fanyizhan/p/10088927.html
Copyright © 2020-2023  润新知