IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 数组 day 4 -> 正文阅读

[Java知识库]数组 day 4

数组

数组本身属于引用类型? ? ?另外两个---类----接口

数组就是存储数据长度的固定容器,存储多个数据的数据类型要一致

第一种格式

数据类型[] 数组名

例:

int [] arr;

double [] arr;

char [] arr;

第二种格式

数据类型 数组名[]

例:

?in arr [];

double arr [];

char arr [];

数组动态初始化

就是只给定数组的长度,由系统给出默认初始化值

格式:

数据类形[] 数组名 = new 数据类型 [数组长度];

int [] arr =new int[5];

// int 表示数组的数据类型

? ? [] 表示这是一个数组

? ? ?arr 表示数组名称

new 为数组开辟内存空间

int 数组数据类形

[] 代表一个数组

5 代表数组长度

数组元素

索引-------------就是存储到数组的元素,会自动拥有一个编号,从0开始

这个自动的编号为数组索引(index),可以通过数组索引访问到数组中的元素

格式:

数组名 [索引] ;

例:

int [] arr = new int[3];// 0  1  2 数组下标
System.out.println(arr);
// 数组名[索引] 访问数组容器中的空间位置
System.out.println(0);        // 0 系统?动分配的默认初始化值
System.out.println(1);
System.out.println(2);

System.out.println(---------------------------------------------);
arr [0] = 14;
arr [1] = 12;
arr [2] = 13;
System.out.println(0); 
System.out.println(1);
System.out.println(2);

内存分配

方法区

栈内存

堆内存

当运行时编译器的编译的字节码文件(.class)会在方法区中,而main方法会被jvm调用到main方法的栈方法中,数组创建的对象在栈方法中,当给数组创建一个数据,这个数据会在堆内存例开辟一个地址,数组所赋的值或数据就是在堆方法中的

静态初始化格式

完整的格式:

数据类型 [] 数组名 = new 数据类型 [] {元素1,元素2, .......};

简化的格式:

数据类型 [] 数组名 = {元素1,元素2,.......};

例:

public class person{

    public static void main(String[]args){

        int[] arr = new int[]{10,11,12,};

        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

System.out.println(--------------------------------);

        int [] arr1={11,12,13};

        System.out.println(arr1);
   
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    
    }
}

索引越界异常

ArrayIndexOutOfBoundsException (报错出现这行代码就是索引越界异常)

举个例子:

public class person{

    public static void main(String[]args){

            int[] arr = new [3];

            System.out.println(arr[3]);
        
    }
}

数组长度为3,而索引的范围是0-2,但我们却访问了一个3的索引

程序运行后,将会抛出ArrayIndexOutOfBoundsException,索引越界异常

空指针异常

public class person{

public static void main(String[]args){

? ? ? ? int []? arr =new int [3];

// 把null赋值给数组? ?null表示空值;

? ? ? ? ? ? ? ? arr = null;

? ? ? ? ? ? ? ? System.out.println(arr[0]);

????????}

}

arr = null 意味着变量arr将不会在保存数组的内存地址,不允许操作数组,因此会报错

数组遍历

就是将数组中的每一个元素分别获取出来,就是遍历,这个也是数组操作的基石

public class ArrayTest01 {
        public static void main(String[] args) {
            int[] arr = { 1, 2, 3, 4, 5 };
            System.out.println(arr[0]);
            System.out.println(arr[1]);
            System.out.println(arr[2]);
            System.out.println(arr[3]);
            System.out.println(arr[4]);
}
}

也可以另一种循环条件写法

public class person{

        public static void main(String[]args){

            //定义数组

            int []  arr ={10,11,12,13,14,15};
            
                    //for循环
            for(ihnt i=0; i<arr.length;i++){

                System.out.println(arr[x]);
        }
    }
}

多维数组

java中没有真正的多维数组,但是java可以把一维数组作为其他数组的元素,这就形成了多维数组

java中只有一堆数组

多维数组可以同过[]表示,一个[]表示一维数组,[][]表示二维数组以此类推

二维数组

动态初始化格式:

数据类型[] [] 数组名称 = new 数据类型 [长度] [一维数组元素的个数];

例:

? ? ? ? ? ? ? ? ? ?int [] [] arr = new int? [5] []//(后面这个可以不写)

初始化:

? ? ? ? ? ? ? ? arr[0]=new int [3]

? ? ? ? ? ? ? ? arr[1]=new int [4]

? ? ? ? ? ? ? ? arr[2]=new int [2]

静态初始化格式:

数据类型 [] [] 数组名称 = {{元素1},{元素2},{元素3}};

例:

? ? ? ? ? ? ? ? ? ? ? ? int []? []? arr ={{1,2,3},{4,5,6}};

多维数组在进行迭代输出时,数组的维数和使用的循环的嵌套数是一一匹配的

例如:

三维数组,就要使用三重for循环才能把数据迭代输出

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-29 16:10:49  更:2021-11-29 16:12:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:59:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码