数组系列文章(一) - 数组简介

1. 数组定义?


1>:数组的定义是:

存储多个元素,且数据类型相同,的容器。

2>:数组可以存储的类型:

既可以存储基本类型数据,也可以存储引用类型数据。
基本类型:4类8种
引用类型:类、数组、接口

3>:数组特点:

每个元素都有编号,叫索引。从0开始,为了方便我们获取数据

4>:获取数据格式:

数组名[索引]

2. 数组格式?


2种数据格式
  • 格式1:数据类型 [] 数组名
    int[] arr

  • 格式2:数据类型 数组名 []
    int arr[]

  • 推荐第一种格式:
    定义一维数组或者二维数组:int[] arr 或者 int[][] arr

3. 数组初始化?


Java中的数组必须先初始化,然后才能使用;
初始化就是:为数组中的元素分配内存空间,并为每个数组元素赋值;

4. 初始化分为2类?


动态初始化:

只给长度,不给元素,系统默认给值
int[] arr = new int[3] ;

静态初始化:

给出元素,不给长度,系统默认会算
int[] arr = new int[]{1,2,3} ;

5. 一维数组动态初始化

int[] arr = new int[3] ;
new:表示给数组申请并分配内存空间

System.out.println(arr) ; // [I@778b3fee 地址值
System.out.println(arr[0]) ; // 0
System.out.println(arr[1]) ; // 0
System.out.println(arr[2]) ; // 0

6. Java中的内存分配?


Java中内存分配有5种:

1>:栈:存储局部变量
  • 局部变量定义:方法中或者方法声明上的变量
  • 特点:方法调用完毕,立即从内存中消失;
2>:堆:存储new 出来的(实体或对象)
  • 实体的特点:
    a:实体都有首地址值;
    b:实体的内容有默认值:
    整数:0;
    浮点数:0.0;
    字符:'\u0000';
    布尔:false;
    引用类型:null;
    c:在垃圾回收器空闲的时候回收:垃圾就是当栈没有再指向堆中的对象时候,也就是说没有人用堆中对象的时候,就叫做垃圾,但是垃圾回收器也不会立即回收,而是等垃圾回收器空闲的时候才能被回收;
    3>:方法区:面向对象
    4>:本地方法区:和系统有关
    5>:寄存器:和CPU有关
    如下图所示:


    Java的内存分配.png

7. 数组的两个小问题


1>:数组越界:ArrayIndexOutOfBoundsException
原因是:访问的角标不存在;
2>:空指针异常:NullPointerException
原因是:对象已经不再指向堆内存,你还想再访问堆内存的数据,是不可以的;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容