• 数组基础篇(概念,定义,使用)


    一.数组的概念

             数组是编程语言中常见的一种数据结构,可以存储多个数据,每个数组元素存放一个数据,通常可以通过数组元素的        索引来访问数组元素,包括赋值,取值,同时,java语言的数组具有其特有的特征。

                 数组也是一种类型。Java中的数组要求所有的数组元素具有相同的数据类型。因此在一个数组中,数组元素的类型是

         唯一的,即一个数组只能存储一种数据类型的数组。

               Java的数组即可以存储基本类型的数据,也可以存储引用类型的数据,只要数组元素的类型统一即可。

               数组也是一种数据类型,它本身是一种引用类型,例如int是一个基本类型,但int[]就是一种引用类型了。

               由于java语言面向对象的特征,类与类之间支持继承关系,所以数组的数组元素之间可以是父子关系,

        但是该数组的数据类型仍然是唯一的,指向数组元素的最高父类,例如有一个水果数组,要求每个元素是水果,但它数组       元素可以是苹果,也可以是香蕉,这是他们都继承了fruit类,因此数组元素的类型还是唯一的

    二.数组的定义

       Java支持两种语法格式定义数组:

    type[] arrayName;     //推荐这种方式,语义明确,可读性强
    type arryName[];      //早期使用,不推荐

            数组是一种引用类型的变量,因此使用它定义变量时,仅仅定义了一个引用变量(也就是定义了一个空指针),

    还未指向任何有效的内存,因此定义数组时不能指定数组的长度,也不能被使用。

    三.数组的初始化

             Java语言中数组必须先初始化才能被使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素

    赋初始值。

             数组的初始化有两种方式:

    1.静态初始化

       语法格式是:

    arrayName=new type[]{element1,element2,element3,...};
    
    //简化格式如下
    arrayName={element1,element2,element3,...};

     静态初始化时,显式指定的数据类型必须与new关键字后面的type类型相同,或者是其子类类型。

    2.动态初始化

       动态初始化只指定数组长度,由系统为每个数组元素赋初始值,动态初始化语法格式如下:

    arrayName=new type[length];

            执行动态初始化时,程序员只需指定数组的长度,几位每个数组元素分配所需的内存空间,系统负责为这些数组元素分配初始值。指定类型的规则如下:

             a)数组元素类型是基本类型的整数类型(byte,short,int,long),则指定初始值0;

             b)数组元素类型是基本类型的浮点类型(float,double),则指定初始值0.0;

             c)数组元素类型是基本类型的字符类型(char),则赋初始值'u0000';

             d)数组元素类型是基本类型的布尔类型(boolean),则赋初始值false;

             e)数组元素类型是引用类型(类,接口,数组),则赋初始值null;

    四.for-each遍历数组

                  通过索引访问数组元素时,索引不能小于0或大于等于数组的长度,否则会

             抛出java.lang.ArrayIndexOutOfBoundsException

                 使用for-each循环遍历数组时,无须获得数组的长度,也无需索引来访问数组元素,比较简单。

            但是使用for-each循环不能给数组元素赋值

    public static void main(String[] args) 
        {
            String[] fruits={"苹果","香蕉","梨","桃子"};
            for(String fruit:fruits){
                fruit="水果";      //fruit只是个临时变量,不是数组元素,给他赋值对数组元素没有意义
            }
            System.out.println(fruits[0]);
        }

    输出:

    苹果

  • 相关阅读:
    2019-2020-1 20199329《Linux内核原理与分析》第十二周作业
    2019-2020-1 20199329《Linux内核原理与分析》第十一周作业
    2019-2020-1 20199329《Linux内核原理与分析》第九周作业
    2019-2020-1 20199329《Linux内核原理与分析》第八周作业
    PHP基础学习笔记5
    MYSQL内置函数【转】
    PHP基础学习笔记3
    常用端口大全【转】
    NMAP输出结果中CPE的含义【转】
    探测主机信息
  • 原文地址:https://www.cnblogs.com/yumiaoxia/p/8849862.html
Copyright © 2020-2023  润新知