zoukankan      html  css  js  c++  java
  • Java细节整理——数组与内存控制

    重点:使用Java数组之前,必须对数组对象进行初始化。

    当数组的所有元素都被分配了合适的内存空间,并指定了初始值时,数组的初始化完成。程序以后将不能重新改变数组对象在内存中的位置和大小。

    知识点整理:

    1.数组的初始化有以下两种方式:

    1)静态初始化:初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组的长度。

    2)动态初始化:初始化时程序员只指定数组的长度,由系统为数组元素分配初始值。

    不管使用哪种方式初始化Java数组,一旦初始化完成,该数组的长度就不可改变。

    代码示例:

    public class Demo {
        public static void main(String[] args) {
            
            // 采用静态初始化方式
            String[] books = new String[] { "一千零一夜", "唐诗三百首", "警示寓言", "一个人的圣朝", };
            // 采用静态初始化的简化形式
            String[] names = { "小红", "小明", "小绿", };
            // 采用动态初始化的的方式
            String[] strArr = new String[5];
    
            // 访问数组以上长度
            System.out.println("第一个数组的长度是" + books.length);
            System.out.println("第二个数组的长度是" + names.length);
            System.out.println("第三个数组的长度是" + strArr.length);
        }
    }

    Java语言的数组变量是引用类型的变量,books,names,strArr这3个变量以及各自引用的数组在内存中的分配如图:

    总结:对于静态初始化方式而言,程序员无需指定数组长度,指定该数组的数组元素,由系统来决定该数组的长度即可。即names是3,books是4。

    而执行动态初始化时,程序员只需指定数组的长度,即为每个数组元素指定所需的内存空间,系统将负责为这些数组元素分配初始值。指定初始值时,系统将按如下规则分配初始值:

    1)数组元素的类型是基本类型中的整数类型(byte,short,int和long),则数组元素的值是0;

    2)数组元素的类型是基本类型中的字符类型(char),则数组元素的值是'u0000';

    3)数组元素的类型是基本类型中的浮点类型(float,double),则数组元素的值是0.0;

    4)数组元素的类型是基本类型中的布尔类型(boolean),则数组元素的值是false;

    5)数组元素的类型是引用类型(类,接口和数组),则数组元素的值为null;

  • 相关阅读:
    带密钥的sha1加密
    单调队列优化和二进制优化的多重背包模板
    HDU6424 Rikka with Time Complexity
    HDU6415 Rikka with Nash Equilibrium
    BZOJ1012: [JSOI2008]最大数maxnumber
    BZOJ2660: [Beijing wc2012]最多的方案
    读入优化和输出优化模板
    BZOJ1089: [SCOI2003]严格n元树
    2018 “百度之星”程序设计大赛
    JavaScript事件代理和委托(Delegation)
  • 原文地址:https://www.cnblogs.com/1693977889zz/p/8992997.html
Copyright © 2011-2022 走看看