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:不足之处,欢迎指正、交流
原文地址:https://www.cnblogs.com/fang--/p/6180887.html