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的,会出现空指针异常

  • 相关阅读:
    偏倚有感
    SAS--修改默认语言
    SAS--EXCEL读写、批量读EXCEL
    SAS--sql2
    Day2----respondToValue
    python的一些遗漏用法
    一些常见的东西
    爬虫学习06用selenium爬取空间
    爬虫学习04.
    爬虫学习03常用模块
  • 原文地址:https://www.cnblogs.com/jeasion/p/10758343.html
Copyright © 2011-2022 走看看