Day03_17_数组

数组

  • 什么是数组?

    • 数组是多个相同类型数据按照一定顺序排列的有序集合,并使用一个名字命名,通过编号的方式,对这些数据进行统一的管理。
    • 数组也是对象,数组中的元素相当于数组对象的成员变量
    • 数组的长度是固定的,不可变得。
    • 如发生数组越界,则会报错:ArrayIndexOutofBounds
  • 数组的特点和规则?

    • 数组是引用类型
    • 数组是有序排列的,数组中可以存储任何类型的元素,但每个数组元素需类型统一
    • 数组是一种简单的数据结构,是线性结构
    • 数组拿首元素的地址作为数组对象的地址
    • 数组本身是引用数据类型,而数组中的元素可以是任意类型,包括基本数据类型和引用数据类型
    • 创建数组对象会在内存中开辟一整块连续的空间,而数组名引用的是这块连续空间的首地址
    • 数组的长度就是数组中元素的个数,数组的长度一旦确定,就不能再修改了
    • 我们可以通过指定下标或者索引的方式调用指定位置上的元素
  • 数组的类型分为:
    *按维度:一维数组,二维数组,三维数组....
    *按元素的数据类型:基本数据类型数组 和 引用数据类型数组 (对象数组)

*. 一维数组的使用

     * 一维数组的声明和初始化

	 - 第一种方式:静态初始化:数组的初始化和数组中元素的赋值操作同时进行。

	        int id[];      //定义声明一个数组名叫id的int类型数组
		id = new int[] {1,2,3,4,5,6,6}; // 将id数组赋值

	- 第二种方式:动态初始化 : 数组的初始化和数组中元素的赋值操作分开进行

	       String[] Name=new String[5];  //定义声明了一个String类型的数组,数组名为name,数组长度为5

	- 对象数组
	   
	       Object o1=new Object();
	       Object o2=new Object();
	       Object o3=new Object();
	
	       Object[] objs= {o1,o2,o3};

* 什么时候使用动态初始化,什么时候使用静态初始化?

        - 无论是静态初始化还是动态初始化 最后的内存分布都是一样的
	- 如果在创建数组的时候知道应该存储什么数据,就是用静态初始化
	- 如果在创建数组的时候不知道数组中应存储的数据是什么,先创建空间就使用动态初始化

* 如何调用数组指定位置的元素

        - 通过调用数组中元素的角标进行调用
	- 数组的角标或索引是从0开始的,到数组的长度(length)减1结束。

     * 如何去获取数组的长度

              - 数组的长度属性为: length,可以用 数组名.length 查询数组名

     * 如何遍历数组

                for(int i=0;i<=Name.length-1;i++) {
		    System.out.println(Name[i]);
	        }

     * 数组元素的默认初始化值

                  数据类型           初始化值
                   ---------------------------------------
	           byte                0
	           short               0
		   int                 0
		   long                0
	           float               0.0
		   double              0.0
		   boolean             false
		   char                \u0000
		   String              null 
		   引用类型             null 

 * 数组在内存中如何分配空间(数组的内存解析)
       
         —  数组的首地址存放在栈中, 数组的实体存在堆中。
posted @ 2021-03-25 13:38  失昼  阅读(33)  评论(0)    收藏  举报