java学习笔记------数组

本文详细介绍了Java中数组的概念、定义与初始化方法,并展示了如何使用数组的一些基本操作如获取数组长度、打印数组内容以及复制数组。

  • 概念

                            
  In the Java programming language,arrays are objects(§4.3.1) ,are dynamically creaeted,and may be assigned to variables of type Object (§4.3.2). .All method of class Object may be invoked on an array.
                              即数组是一个对象,它拥有Object类中的方法。
    • 验证:

              char[] ch=new char[5];
              System.out.println(ch.getClass());
              System.out.println(ch.getClass().getSuperclass());
/*Output
*class [C
*class java.lang.Object
*说明数组是一个类[C对象,同时基类为Object
*/


  • 定义及初始化

    • 定义        

              int[] a1;//定义”一个int型数组引用“,现在只是为该引用分配了足够的存储空间,但没给数组对象本身分配任何空间。
              //System.out.println(a1.toString());//编译错误,原因没有初始化。在JAVA,除了类成员变量会自动初始化(数组类型初始化为0,布尔型为false,引用为null),局部变量不初始化不能直接使用,否则编译器报错。
              //int[2] a2;//定义数组的时候不允许指定数组的大小,否则编译错误

    • 初始化

              int[] a1={1,2,3,4};// 初始化方法1
              int[] a2=new int[4];// 初始化方法2,它的元素值为该元素类型的默认值(数字类型为0,布尔类型为false,引用类型为null)
              Father[] f=new Father[5];//这是运用了初始化方法2,它的元素值均为null,即都为空引用
              //f[0].a=1;//直接使用空引用,运行时产生NullPointerException异常
              for(Father x:f)//需要对数组中的引用进行初始化
              {
                     x=new Father();
              }
             
              int[] a3=a1;// 初始化方法3,复制了一个引用,注意此时a3和a1指向对一个数组对象
              

    • PS:故此一般定义和初始化是一起使用


  • 常用的方法和变量

    • length:数组的长度

              int[] a1={1,2,3,4};
              System.out.println(a1.length);//输出数组a1的长度4
              //a1[4]++;//运行时,java会检查数组下标,一旦越界,就会抛出ArrayIndexOutOfBoundsException异常。

    • toString()和Arrays.toString():前者属于Object类的方法

   //Object.toString() 
   public String toString() {
       return getClass().getName() + "@" + Integer.toHexString(hashCode());
   }
              int[] a1={1,2,3,4};
              System.out.println(a1.toString());
              System.out.println(Arrays.toString(a1));
              /*Output:
               *[I@7852e922
               *[1, 2, 3, 4]
               */
             

    • clone():复制数组

              int[] a1={1,2,3,4};
              int[] a3=a1;//这种复制方法,使得a3和a1指向同一个对象
              int[] a4=a1.clone();//使用clone方法复制,a4和a1不指向同一个对象
              System.out.println(a1==a3);//true
              System.out.println(a1==a4);//false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值