== 注:java中数组的名称,代表内存地址的哈希值,可理解位C语言中的指针 ==
1、Java数组初始化
初始化方式:
1)动态初始化(指定长度)
/*
其中的元素将会自动拥有一个默认值
如果是整数类型,默认为0
如果是浮点类型,默认为0.0
如果是字符类型,默认为'\u0000'
如果是布尔类型,默认为false
如果是引用类型,默认为null
*/
数据类型[] 数组名称 = new 数据类型[数组长度];
2)静态初始化(指定内容):在创建素组的时候,不指定数据个数,而是直接将具体的数据内容进行指定
数据类型[] 数组名称 = new 数据类型[] {元素1, 元素2, 元素3, ...};
/*数组的长度,就是{}中元素的个数*/
3)省略格式
数据类型[] 数组名称 = {元素1, 元素2, ...};
2、获取数组的长度
数组名称.length;
3、修改数组的大小
/*需要修改数组长度,需要重新new一次就行*/
int[] array = new int[2];
array = new int[3];
4、两个引用指向同一个数组:
数组类型[] 数组A = new 数组类型[长度];
数组类型[] 数组B = 数组A;
5、Java的内存需要划分成为5个部分
1)栈(stack):存放的都是方法中的局部变量
局部变量:方法的参数,或者是方法{}内部的变量
作用域:一旦超出作用域,立即从栈中消失
2)堆(heap):凡是new出来的,都在堆中
堆内存里面的东西都有一个地址值:16进制
堆内存里面的数据,都有默认值:
如果是整数类型,默认为0
如果是浮点类型,默认为0.0
如果是字符类型,默认为'\u0000'
如果是布尔类型,默认为false
如果是引用类型,默认为null
3)方法区(Method Area):存储.class相关信息,包含方法的信息
4)本地方法栈(Native Method Stack):于操作系统相关
5)寄存器(pc Register):于CPU相关