1.数组
数组定义格式与初始化
- 定义一个数组的格式为:数据类型[ ] 数组名称;
数据类型代表数组中保存的数据全都是统一的哪种类型。
通过数组名称可以使用其中的多个数据。 - 数组一定要初始化之后才可以使用。初始化是指:为数组在内存当中开辟内存空间,用来保存数据,并且设置默认值。没有初始化的数组无法使用。
数组的初始化方式分成两种:- 动态初始化,指定长度;
- 静态初始化,指定内容。
动态初始化:
数组的动态初始化是直接指定数组的长度,并且为数组中的每一个元素赋予一个默认值。
动态初始化的格式为:
数据类型[] 数组名称 = new 数据类型[长度];
或者:
数据类型[] 数组名称;
数组 = new 数据类型[长度];
数组元素的默认值规则为:
整数默认为0,浮点数默认为0.0,字符默认为’\u0000’,布尔值默认为false,字符串等引用类型默认为null。
访问数组元素:
直接打印数组的名称,得到的是“内存地址值”(的哈希值)。要想访问数组中的元素,需要使用格式:
数组名称[索引编号]
其中索引编号是数组中元素的int型数字编号,从0开始,一直到数组的长度-1为止
静态初始化的格式:
- 标准格式:
数据类型[] 数组名称 = new 数据类型[] {元素1, 元素2, 元素3, ...}; - 简便格式:
数据类型[] 数组名称 = {元素1, 元素2, 元素3, ...}; - 标准格式可以拆分成为两个步骤;但是简便格式必须一个步骤完成。
获取数组长度:数组名称.length;
注意:数组在内存当中一旦被创建,那么长度不可改变。
数组索引越界异常:
如果访问的数组元素索引并不存在,那么将会发生异常:
java.lang.ArrayIndexOutOfBoundsException
2.Java内存分配
- 栈(Stack):主要用来存放局部变量。
- 堆(Heap):凡是new出来的东西,都在堆当中。堆当中的数据有默认值规则:
- 如果是整数,默认是0;
- 如果是浮点数,默认是0.0;
- 如果是字符,默认是’\u0000’(Unicode写法);
- 如果是布尔值,默认为false;
- 如果是引用类型(包含字符串),默认为null(空常量)。
- 方法区(Method Area):存放与.class相关的信息。
- 本地方法区(Native Method Area):与操作系统相关。
- 寄存器(pc Register):与CPU相关,性能极高。