Java的数组与内存控制

1     数组基础

   数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素(item),每个数组元素可以通过一个下标/索引来(index)访问它们.

  1. 数组长度是确定。数组一旦申请完空间,长度不能发生变化,用length属性访问。
  2. 数组的元素都是同一数据类型。
  3. 数组是有序的 。每个元素通过下标/索引标记,索引从0开始。

 2.内存空间分类    

               内存分为两类:

                  栈(stack)内存:基本数据类型分配在栈内存,栈内存空间不需要开发者回收,系统会自动回收。栈空间占整个内存空间的比例较小

                  堆(heap)内存:引用数据类型分配在堆内存,堆内存一定要开发者通过new 来申请,开发者申请的内存使用完成后一定要回收。jvm中有专门的垃圾回收机制(gc)回收使用完的堆内存。堆空间占整个内存空间的比例较大。

 3.数组初始化   

  • 静态初始化 : 初始化时由程序员指定每个数组元素的初始值,有系统决定数组长度
  • 动态初始化: 初始化时程序员只指定数值长度,由系统微数组元素分配初始值
  • 注意:数组,一旦初始化完成,该长度不可以变
  • 当char 没有初始化 ,系统自动分配初始化 “\u0000”
    • 引用变量本质上只是一个指针,只要程序通过应用变量访问属性,或者通过引用变量来调用方法,该引用变量将会由他所引用的对象代替。

猜你喜欢

转载自www.cnblogs.com/dedema/p/10720313.html