• 数组


    数组声明:

    数组变量类型[] 变量名 ; //  int[] arr 或者 int arr[]   我们使用优先前者   后者是c语言的风格写法

    数组 创建:

    数组变量类型[] 变量名 = new 数组变量类型[];// int[] arr = new int[10];  声明一个数组 并创建初始化长度为10的数组   new数组的时候一定要分配好数组的长度

    数组使用的三种方式:

    1.动态分配数组

     int[] arr;//声明数组

    arr = new int[10];//初始化数组

    arr[1] = 1;

    arr[2] = 2;

    arr[3] = 3;

    ...

    arr[9] = 10;

    2.静态分配数组

    int[] arr ={1,2,3,4,5};//声明 创建 初始化 一个长度为5的数组  ; {}可以取代 new int[]{1,2,3,4,5};  静态分配的时候不用指定数组的长度 自己写了几个数就有几个长度

    3.数组的默认初始化

    int[] arr = new int[10];//默认初始化 由于数组类型是int, 数组里的每个元素的初始值 为0,    数组 是引用类型 , 数组里的元素相当于类里的实例变量, 所以数组一旦分配了内存长度, 其中的元素也按照实例变量同样的方式隐式初始化.

    内存分析:

    我们创建好一个数组.  

    int[] arr = new int[10];

    //这个数组就在内存里有所分配

    //内存 有 栈内存空间  堆内存空间  方法区域

    //栈空间 存放 基本变量名 和 引用变量名

    //堆空间 存放 对象 和 数组

    //方法区 包含所有的static变量和class

    /*

    arr 就在 栈空间里头 ,  new int[10]就在堆空间里头.

    arr就相当于一个引用,  它具体引用于 堆空间里头的new int[10]这一块空间地址

    只有new 了一个数组,  内存里头才有一个真实的数组,声明一个数组仅仅是声明了一个数组的引用,只不过还没有真实的引用堆空间里的数组地址而已.

    */

    小结:

    1.数组是相同数据类型(可以设置任何类型的数组) 

    2数组变量是引用类型,数组也是对象,其中的元素都是对象的成员变量

    3.数组长度是不可变的, 数组的长度 为 [0,length-1] ,一旦超出长度 就会报错: java.lang.ArrayIndexOutOfBoundsException 数组下标越界异常

    4.数组元素必须是相同类型,不允许出现混合类型

    5.数组中的元素可以任何数据类型, 包括基本类型 和 引用类型

    6.数组本身就是对象,java中的对象是在堆空间里的,因此数组元素无论是基本类型还是其他对象类型,数组对象本身是在堆空间

  • 相关阅读:
    Django+drf学习过程笔记
    网络编程之socket
    python回收机制
    异常处理
    面向对象
    常用模块
    部分内置模块
    模块的使用、软件开发目录规范
    迭代器、生成器、函数递归调用及二分式
    三元表达式、生成式、匿名函数
  • 原文地址:https://www.cnblogs.com/shenyueshuo/p/12922133.html
Copyright © 2020-2023  润新知