Java数组概述

本文详细介绍了Java数组的概念、特点、声明及创建方式,并讨论了数组的初始化、长度属性及其优缺点。

Java数组概述

数组的定义
  • 数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问他们。
数组的基本特点
  • 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

  • 其中元素必须是相同类型,不允许出现混合类型。元素的类型可以是Java支持的任意类型。

  • 数组类型可以是任何数据类型,包括基本类型和引用类型。

  • 数组的元素在堆内存中被分配空间,并且是连续分配的。

  • 使用new关键字对数组进行内存的分配。每个元素都会被JVM赋予默认值。默认规则:

    整数:0

    浮点数:0.0

    字符:\u0000

    布尔:false

    引用数据类型:null

  • 数组的元素都是有序的,序号从0开始,称作数组的下标、索引、角标。

数组的声明
  • 声明的时候并没有实例话任何对象,只有在实例化数组对象时;JVM才分配空间,这时才与长度有关。
  • 声明一个数组的时候并没有数组真正被创建。
  • 构造一个数组,必须指定长度。
数组格式
  • 元素类型[] 数组名 = new 元素类型 [元素个数或数组长度];//int [] = new int [3];

  • [] : 代表这是数组类型。

  • 数组名:一个合法的标识符,命名规范和局部变量规范一致。

  • new:是Java的关键字。用来向JVM申请内存的。

  • 元素类型[元素个数]:决定了向JVM申请的内存空间的大小。

    ​ 大小:元素类型字节数*元素个数

  • 元素的个数:只要是一个合法的Java表达式就可以。返回一个int类型的值即可

  • example

public calss Test{
    public static void main(String args[]){
        int[] s = mull;//声明数组
        s = new int[10];//给数组分配空间
        for(int i =0; i < 10;i++){
            s[i] = 2 * i + 1;//给数组赋值
            System.out.println(s[i]);
        }
    }
}
数组声明的两种方式:
  • 数据类型 [] 数组的名字 例如:int [] a;
  • 数据类型 数组的名字 [] 例如:int a [];
  • 注意:在Java语言中两种声明方式没有任何区别,但是建议用第一种,避免混淆a的数据类型。
数组的创建

数组创建的三种方式

  • 声明数组的同时,根据指定的 长度分配内存,但数组中元素值都为默认的初始话值。

    ​ int [] ary0 = new int [10];

  • 声明数组并分配内存,同时将其初始化。

    ​ int [] ary1 = new int [] {1,2,3,4,5};

  • 与前一种方式相同,仅仅只是语法相对简略。

    ​ int [] ary2 = {1,2,3,4,5};

数组创建可以分为动态和静态两种

  • 动态创建数组(没有为元素赋值,可以结合for循环进行赋值)

    ​ char [] chAry = new char [];

  • 静态创建数组,在创建的时候,即为每个元素赋初始值

    ​ int [] ary1 = new int [] {1,2,3,4,5};

  • 数组的长度:length属性

    ​ int [] b1 = new int [] {1,2,3,4,5,6,7};

    ​ System.out.println(b1.length);

    数组的初始化
  • 静态初始化:int [] arr = {1,2,3}; //静态初始化基本数据类型;

  • 动态初始化:int[] arr = new int[2]; //动态初始化数组,先分配空间;

    ​ arr[0] = 1; //给数组元素赋值;

    ​ arr[1] = 2; //给数组元素赋值;

  • 默认初始化

    ​ int arr[] = new int[2]; //默认值0.0

    ​ boolean[] b = new boolean[2]; //默认值:false,false

    ​ String[] s = new String[2]; //默认值:null,null

数组的优缺点

优点

  • 可以保存若干个数据。
  • 随机访问的效率很高,根据下标访问元素效率很高。

缺点

  • 数组的元素的类型必须一致,元素类型必须一致。
  • 连续分配空间在堆中,如果数组的元素很多,对内存的要求更加的严格。
  • 根据内容查找元素效率比较低,需要移动大量的元素。
  • 数组定长,不能自动扩容。
  • 数组没有封装,数组对象只提供了一个数组长度的属性,但是没有提供方法用来操作元素。Java提供了一整套的、针对不同需求的、对于容器的解决的方案。集合框架部分,不同的容器有不同的特点,满足不同的需求。数组的缺点都会被消除。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值