• Java数组分配内存空间


    分配内存空间

    数组名=new 数据类型[数组长度];

    new关键字用来实现为数组或对象分配内存

    数组具有固定的长度。获取数组的长度: 数组名.length

     

    定义数组+分配内存空间

    数据类型[]数组名=new 数据类型[数组长度];

    定义数组时不指定长度,分配空间时指定数组长度;如:String cities[] = new String[6];

     

    数组元素:

    数组名[下标值];

    数组下标从0开始  scores[0]=75;

     

    数组的内存分配  栈内存和堆内存

    如定义一个数组 int[]scores将在栈内存中为scores 分配内存空间,其值是一个不确定的值。

    当执行语句scores=new int[5]时,将在堆内存分配连续5个空间,每个空间4个字节,用于存放整型数据,其初始值为0,然后将该段空间首地址,也就是第一个元素的地址,比如0*3000,赋给scores变量。该地址相当于一个指针,指向堆内存中分配的空间。此时堆内存中分配的5个空间可以分别使用scores[0],一直到scores[4]来表示。当执行四个赋值语句时,分别用指定值填充到对应元素位置。如果此时将null值赋给scores时,scores变量将不再指向任何位置,此时堆内存中分配的空间就变成了垃圾,由垃圾回收器在某一时间进行回收。

     

    在方法中定义的变量,包括基本数据类型变量和引用数据类型变量,都将在栈内存中分配空间,当超过变量作用范围后,自动回收

    总结:初始化=定义数组+分配空间+赋值

  • 相关阅读:
    [bzoj 1031][JSOI2007]字符加密Cipher
    [bzoj 3224] tyvj 1728 普通平衡树
    分治算法例题
    Codeforces 1146F. Leaf Partition(树形DP)
    Codeforces 1146H. Satanic Panic(极角排序+DP)
    Codeforces 578E. Walking!(贪心+线段树)
    学习日记0802函数递归,三元表达式,列表生成式,字典生成式,匿名函数+内置函数
    学习日记0808
    0803学习日志迭代器
    学习日记0804生成器
  • 原文地址:https://www.cnblogs.com/whu-2017/p/9224680.html
Copyright © 2020-2023  润新知