Java基础语法(4):数组、Java内存分配

1.数组

数组定义格式与初始化

  1. 定义一个数组的格式为:数据类型[ ] 数组名称;
    数据类型代表数组中保存的数据全都是统一的哪种类型。
    通过数组名称可以使用其中的多个数据。
  2. 数组一定要初始化之后才可以使用。初始化是指:为数组在内存当中开辟内存空间,用来保存数据,并且设置默认值。没有初始化的数组无法使用。
    数组的初始化方式分成两种:
    1. 动态初始化,指定长度;
    2. 静态初始化,指定内容。

动态初始化:

数组的动态初始化是直接指定数组的长度,并且为数组中的每一个元素赋予一个默认值。

动态初始化的格式为:

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

或者:

数据类型[] 数组名称;

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

数组元素的默认值规则为:

整数默认为0,浮点数默认为0.0,字符默认为’\u0000’,布尔值默认为false,字符串等引用类型默认为null。

访问数组元素:

直接打印数组的名称,得到的是“内存地址值”(的哈希值)。要想访问数组中的元素,需要使用格式:

数组名称[索引编号]

其中索引编号是数组中元素的int型数字编号,从0开始,一直到数组的长度-1为止

静态初始化的格式:

  1. 标准格式:
    数据类型[] 数组名称 = new 数据类型[] {元素1, 元素2, 元素3, ...};
  2. 简便格式:
    数据类型[] 数组名称 = {元素1, 元素2, 元素3, ...};
  3. 标准格式可以拆分成为两个步骤;但是简便格式必须一个步骤完成。

获取数组长度:数组名称.length;

注意:数组在内存当中一旦被创建,那么长度不可改变

数组索引越界异常:

如果访问的数组元素索引并不存在,那么将会发生异常:

java.lang.ArrayIndexOutOfBoundsException

2.Java内存分配

  1. 栈(Stack):主要用来存放局部变量。
  2. 堆(Heap):凡是new出来的东西,都在堆当中。堆当中的数据有默认值规则:
    1. 如果是整数,默认是0;
    2. 如果是浮点数,默认是0.0;
    3. 如果是字符,默认是’\u0000’(Unicode写法);
    4. 如果是布尔值,默认为false;
    5. 如果是引用类型(包含字符串),默认为null(空常量)。
  3. 方法区(Method Area):存放与.class相关的信息。
  4. 本地方法区(Native Method Area):与操作系统相关。
  5. 寄存器(pc Register):与CPU相关,性能极高。

猜你喜欢

转载自blog.csdn.net/weixin_41300033/article/details/81261554