Java数组定义、遍历及JVM内存划分

数组:存储数据长度固定的容器,保证每个数据的数据类型要一致。

容器:将多个数据存储到一起,每个数据称为该容器的元素。

数组有三种创建方式:

  数组存储的数据类型[] 数组名称 = new 数组存储的数据类型[长度(正整数)];(动态初始化)

  数组的数据类型[]  数组名称  = new 数组的数据类型[]{元素1,元素2,元素3,...};(静态初始化)

  数组的数据类型[] 数组名称 = {元素1,元素2,元素3,.....};(静态初始化)

如果不确定数组当中存储的内容时,用动态初始化,反之内容已经确定了,使用静态初始化。大多数情况下,建议使用动态初始化。

创建空数组的默认值:   

    对于int整数类型来说,默认值是0

    对于浮点数类型来说,默认值是0.0

    对于字符类型来说, 默认值是'u0000' 显示是一个空格

    对于布尔类型来说, 默认值是false

    对于引用类型来说, 默认值是null

数组特点:

  1.长度不可变

  2.数组本身是引用类型

  3.数组存的元素数据和数组类型保持一致(数组可以当做一个杯子,当杯子里装牛奶的时候就不要再装茶叶了)

数组访问:

    每一个存储到数组当中的元素,都会自动的分配一个编号

    从【0】开始,这个系统自动分配的编号称为数组的索引(index),可以通过索引访问数组当中的元素。

数组长度可以用:数组名.length      得到值为int类型

修改索引对应的值:数组名[索引]=(直接替换)元素值

JVM内存划分:

  内存空间进行不同区域的划分,每一片区域都有特定的处理数据方式和内存管理方式。这样是为了提高运算效率

区域名称 作用
寄存器 给CPU使用,和开发没有关系
本地方法栈 JVM在使用操作系统功能时使用,和开发没有关系
方法区 存储可以运行的class文件(常量池、静态域)
方法栈(stack) (main)方法运行时使用的内存
堆内存(heap) 存储对象或者数组,new出来的对象,都存储在堆内存中(可以当做是在内存中的容器)

如果输出数组的名字,会在控制台显示数组所在内存地址哈希值

如果两个变量同时指向同一个数组,因为在内存中地址哈希值不变,所以修改任意一个变量的索引元素值,另一个变量所在的索引元素值也会变

数组遍历:

    将数组中的每一个元素分别获取出来就是遍历。

数组的索引从0开始,依次递增,递增到arr.length-1为止,引入循环结构

public static void main(String[] args) {
    // 静态初始化一个int数组
    int[] arr = {1,2,3,4};
    // 数组遍历 for或者while
    for (int i = 0; i <= arr.length-1; i++) {//遍历容器时,初始化语句当中的循环变量一般都是索引值
      System.out.println(arr[i]);
    }
}

 

 

原文地址:https://www.cnblogs.com/9080dlb/p/13966563.html