No.1 数组与内存控制
1.动、静态初始化(数组);初始化包括:①分配内存②赋初始值
- 何为动、何为静,站在程序(系统)的角度来看,“动”指的是系统动态的赋初始值(先赋默认初始值,后面程序若有显示赋值是在默认值上面进行再赋值)(程序员指定数组长度);“静”指的是不由系统来赋初始值(系统指定长度),也就是由程序员显示赋初始值
- 程序员角度上:动——程序员只指定长度,不指定初始值;静——程序员不指定长度,指定初始值
- eg:
1 // 动态初始化 2 int score[] = new int[3]; // 此处有默认初始值 4 //通过循环为数组 动态 赋值,且赋奇数值 5 for(int i=0;i<score.length;i++){ 6 score[i]=i*2+1; // 将默认初始值改掉 7 } 8 9 // 静态初始化 10 int score[]={94,86,25,78,19};
2.局部变量存放在 各自的方法栈区中(main方法:main栈区),引用类型变量所引用的对象放在堆内存中
3.区分引用类型变量何时指变量何时指的是引用的对象,规则
- 引用变量本质上只是一个指针,只要程序通过它来访问属性或者调用方法,那么引用变量就会由他所引用的对象来代替。
4.数组元素指的是:数组对象所存储的值
- 数组元素就是变量,可以当成普通变量来进行使用
- 区别:main方法声明的变量属于局部变量保存在main方法栈中,但是数组元素作为数组对象的一部分是保存在堆内存中的,不论他们是基本类型还是引用类型的数组元素
5.没有多维数组,多维数组的本质仍然是一维数组
- 所谓多维,其实是指数组元素仍然是数组(此处的数组可以是N维的)的1维数组
- 初始化时,可先初始化最左边的维数
- int[5][][]:表示长度为5的一维数组,它的数组元素是二维的数组,即它的数组元素是指向二维数组对象的引用变量
6.Java中数组是静态的,即它一旦初始化完成,长度是不可改变的
PS:不足之处,欢迎指正、交流