java数组与内存
--定义和性质
1.数组是一种引用数据类型
2.数组当中的多个数据,类型必须统一
3.数组的长度在运行期间不可改变
--初始化
int [] arr= new int [10] 动态初始化
int [] arr= new int[]{1,2,3} 或者int [] arr= {1,2,3} 静态初始化
--直接打印数组,得到的是数组对应的内存地址哈希值
System.out.println(arr[2]);
--如果动态初始化一个数组,不赋值,元素将自动拥有一个初始值,规则如下:
整数型 0
浮点型 0.0
字符型 \u0000
布尔型false
引用型 null
注:静态初始化也有默认值,只不过系统将默认值修改成大括号中的值
--java的内存需要划分为五个部分
1.栈(stack):存放的都是局部变量,方法的运行一定在栈当中运行。
局部变量:方法的参数,或者是方法()内部的变量
作用域:一旦超出作用域,立刻从栈内存中小事
2.堆(Heap):凡是new出来的东西,都在堆当中。
堆内存里面的东西都有一个地址值:16进制
堆内存里面的数据,都有默认值
3.方法区(Method Area):存储.class相关信息,包含方法的信息。
4.本地方法栈(Native Method Stack):与操作系统相关。
5.寄存器(pc Register):与CPU相关
.数组的长度在运行期间不可改变