zoukankan      html  css  js  c++  java
  • Java 数组

    申明及初始化

    • 申明方式及初始化方式
    数组的申明及初始化
     
    int[] arr = new int[5]; int arr[1] = 3;
     
    int[] arr = {1,2,3,4};
     
    /*不允许分开写,下面是错误的
       
         int[] arr;
        arr={1,2,3,4}
    */
     
    int[] arr = new int[]{1,2,3,4}; //注意右边不需要指明长度
     
    //允许这样写
     
    int[] arr;
    arr = new int[]{1,2,3,4} 
    • 注意点
      • 数组是不能指定长度的
    int[] nums = new int[4];
     
     
    其中 int[] nums里的[]里面不能填入数字
     
    所谓的数组长度其实是一个误区,new int[4]开辟了一个 4*4的内存块,这里才是长度,但这是内存的长度
     
    nums所做的只是获取这个内存的引用,即获取这块内存的位置
     
    所以说数组是无法指定长度的
    • 数组会自动初始化

            整型为0,boolean为false,字符型&字符串型为""(unicode的0),object为null

    • 引用数组元素会初始化为null,所以在使用之前要创建对象并将引用赋值给元素,否则会出现空指向异常
    Integer[]  integers = new Integer[10];
    
    
    这时候nums里面的元素指向是null
    
    一旦元素进行运算就会发生java.lang.NullPointerException错误
    
    eg:System.out.println(integers[0]+1);
    
    
    需要重新给元素赋值 eg:a[0] = new Integer(1);
    
    但如果只对其进行访问并不报错 
    eg:System.out.println(integers[0]);
    结果:null
    
    注意:这里因为integer[0]是integer包装类,所以如果里面有值,可以直接如上例输出
         但如果引用数组里面的是普通类,就会如普通类一般输出引用地址
    eg:            Test[] tests = new Test[10];
    		tests[0] = new Test(null);
    		System.out.println(tests[0]);
    结果:Day06.Test@383534aa
    
    
    此外,引用数组如果只申明没有进行赋值,该元素(对象)因为指向为null,没有获取到内存的引用,
    所以是不会执行析构函数的。
    
    
    
    Object[] object =  new Object[5];
    object.num = 4;//这是错误的
    object[0]里面是null的,会出现空指针异常

  • 相关阅读:
    成功连上数据库顿感世界美好许多
    MySQL数据库基本命令
    杭电1004 Let the Balloon Rise
    大数学习笔记
    安卓传感器开发之指南针
    java Class文件内部结构解析
    mysq数据库实战小型管理系统
    JSplitPane分隔线的用法
    swing 菜单+右键菜单+二级菜单实现
    input type=file 上传文件,同一个文件第二次上传无反应
  • 原文地址:https://www.cnblogs.com/jeasion/p/10758343.html
Copyright © 2011-2022 走看看