欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javaSE学习02(数组)

程序员文章站 2024-03-24 08:15:28
...

数组定义格式

数组概述

一次性声明大量的用于存储数据的标量,
要存储的数据通常都是同类型数据

什么是数组

数组array是一种用于存储多个相同类型数据的存储模型

数组定义格式

格式一:数据类型[]  变量名         范例:int[] arr    常用
格式二:数据类型    变量名[]       范例:int arr[]

数组初始化

初始化概述:

初始化就是给数组中的元素分配内存空间,并为每个数组元素赋值

动态初始化:

格式:数据类型[] 变量名 = new 数据类型[数组长度];
范例:     int[] arr = new int[3];
初始化时只指定了数组长度,由系统给数组分配初始值。

静态初始化:

格式:数据类型[] 变量名 = new 数据类型[]{数据1,数据2,...};
范例:   int[] arr = new int[]{1,2,3};
初始化时指定每个数组元素的初始值,由系统决定数组长度。

简化格式:数据类型[] 变量名 = {数据1,数据2,数据3...};
范例:   int[] arr = {1,2,3};          主要方式

数组元素访问

数组变量访问方式

数组名

数组内部保存的数据访问方式

数组名[索引]

索引:

索引时数组中数据的编号方式
访问数组内部数据时, 数组名[索引]   等同于变量名
从0开始,逐一增加,索引是连续的。

内存分配

Java中内存分配

Java在运行时,需要在内存中分配空间。
为了提高运算效率,对不同的空间进行了不同区域的划分
每一片区域都有特定的处理数据方式和内存管理方式。

栈内存:  储存局部变量      使用完就会立即消失
堆内存:  储存new出来的内容(实体,对象)
    new出来的东西都有一个地址值,使用完毕会在立即回收器空闲时被回收

数组内存图(单个数组)

javaSE学习02(数组)

数组内存图(多个数组)

javaSE学习02(数组)

数组内存图(多个数组指向相同)

javaSE学习02(数组)

两个问题:

索引越界:

访问了数组中不存在的索引,会报错

空指针异常:

访问的数组没有指向堆内存的数据,
访问时会造成空指针异常 NullPointerException

数组常见操作

遍历:

先获取数组元素数量   数组名.length
int[] arr = {....};
for(int x= 0;x<arr.length;x++){
    arr[x]      对arr[x]进行操作
}

获取最值:

定义变量 ,用来保存最大值
取数组的第一个值放入
与数组中剩余的数据进行对比,把最大值保存进max中
最后将变量打印

示例

public class ArrayDemo {
    public static void main(String[] args) {
        int[] arr = {12,45,98,73,60};

        int max = arr[0];
        for(int x = 0;x<arr.length;x++){
            if(arr[x] > max){
                max = arr[x];
            }
        }
        System.out.println("max:"+max);
    }
}