java学习-----数组

    数组是一种常见的数据类型,它就像一个容器,里面可以存储多个数据,同时其中的每一个数据叫做这个数组的元素。这个容器最大的一个特性就是里面的数据类型只能是同一种。接下来我们可以了解到数组的定义及使用。

  1.数组的定义:

                语法格式  type[] arrayName;

                          type arrayName[];

     这两种格式都是Java所支持的,推荐使用第一种可读性较强的格式。在java中数组也是一个类,我们知道类的定义格式为 “类名 变量名”,由此可知数组的语法格式,其中type[]是一种引用类型,arrayName是变量名(数组名)。

   2.数组的初始化:

      java中数组必须初始化以后才可以使用,所谓初始化就是给数组分配内存空间,并为每个元素赋初值。

      两种方式:

                         

   3.数组的使用:

      对于数组的使用通常就是访问数组,其中包括对数组的赋值和访问具体的数组元素。java给了数组中的每个元素一个下标作为索引,这个下标从0开始。比如要访问数组中第一个元素时,只需在数组的方括号中写入第一个元素的下标即可, System.out.println(arrayName[0]);

      在数组中只有唯一的一个属性,length,我们可以通过这个长度属性可以遍历到整个数组的元素,

            for(int i=0;i<arrayName.length;i++){

                 System.out.println(arrayName[i]);

                }

   4.数组在内存中的存储:

       首先我们要知道内存大致可以分为两块:堆和栈。

       (1)在定义数组时,即执行 type[] arrayName,这时在内存中的栈里面开辟了一个空间存储了这个数组的变量名(数组名)

       (2)在初始化的时候,系统在堆里面根据初始化相应的方式开辟对应的数组长度的空间,即数组中的元素存储在堆里面

        下面这张图很形象的说明了数组的存储,举了两例子分别是基本类型数组(int)和应用类型数组(类),基本类型是指基本的那八个数据类型,应用类型指类,接口或者是数组。

                       

            应用类型数组的实现代码:

                   //首先新建一个student类

                   public class student {
                    String name;
                    String id;
                    int age;

           public void info(){
                   System.out.println("姓名:"+name+"   ");
                   System.out.println("学号:"+id+"   ");
                   System.out.println("年龄:"+age+"   ")

                          }

                      }

                //新建一个Reference 类

            public class Reference {

              public static void main(String[] args) {
               student[] students;              //定义了一个student类型的数组,数组名为students
               students=new student[2];   //动态初始化students数组,数组长度为2

               student s1=new student();  //实例化student类,对象名为s1
               s1.name="张三";                   //给s1中的属性赋值
               s1.age=18;
               s1.id="S001";

               student s2=new student();//同上
               s2.name="李四";
               s2.age=19;
               s2.id="S002";

               students[0]=s1;                 //让students数组中的第一个元素指向s1这个对象
               students[1]=s2;                 //让students数组中的第二个元素指向s2这个对象

               s1.info();                           //调用student类中的方法
      }
            }

       在引用型数组这个例子中,当我们动态初始化students这个数组的时候,我们还不能直接去使用这个数组,因为这个时候堆中的元素时系统给的null值,只有当我们 实现students[0]=s1;时,相当于给数组中的第一个元素赋值,才可以使用这个数组。

       值得注意的是,在数组中只能通过数组名来访问数组元素,失去了数组名的数组将会被系统回收。

   5.“多维数组”:

        谈到多维数组,其实是不存在多维数组这个概念的,它的本质是数组的引用类型。由上面4中的例子我们可以知道引用类型的数组可以引用类,接口和数组,在上面的例子中是引用了类,而所谓的“多维数组”则是引用了数组。二位数组其实是一维数组中的某一个元素又指向了另外一个数组,所以这样看起来就像是一个表格。

       二维数组为例的语法格式:type[][] arrayName;


                                                                     

       

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值