数组

数组的初始化有以下两种方式。

  • 静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。
    • int[ ] a= {0}    int[] a=new int[]{0}   
    • 程序员无须指定数组长度,指定该数组的 数组元素,由系统来决定该数组的长度即可
  • 动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值。
    • int[] a=new int[3];
    • 执行动态初始化时,程序员只需指定数组的长度,即为每个数组元素指定所需的内存空间,系统将负责为这些数组元素分配初始值

   Java 数组是静态的,一旦数组初始化完成,数组元素的内存空间分配即结束,程序只能改变数组元素的值,

而无法改变数组的长度。

   Java 的数组变量是一种引用类型的变量,数组变量并不是数组本身,它 只是指向堆内存中的数组对象。

  因此,可以改变一个数组变量所引用的数组,这样可以造成数 组长度可变的假象


  基本类型 数组的初始化比较简单:程序直接先为数组分配内存空间,再将数组元素的值存入对应内 存里。


 


对于很多Java 程序员而言,他们最容易混淆的是:

引用类型的变量何时只是栈内存中的 变量本身,何时又变为引用实际的Java 对象。

其实规则很简单:

引用变量本质上只是一个指 针,只要程序通过引用变量访问属性,或者通过引用变量来调用方法,该引用变量就会由它所 引用的对象代替。

 


 


凡是以关键字new创建的对象,Java虚拟机jvm都会在堆内存中开辟一个新的内存空间,创建一个新的对象

基本数据类型声明时开辟的空间,引用数据类型在(new)初始化时开辟空间

posted @ 2019-10-15 16:00  MRCHENH  阅读(130)  评论(0编辑  收藏  举报