栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java数组

java数组

概述

  • 数组本身是 引用数据类型 而数组中的元素可以是 任何数据类型 包括基本数据类型和引用数据类型
  • 创建数组对象会在内存中开辟一整块 连续的空间 而数组名中引用的是这块连续空间的首地址 。
  • 数组 的 长度一旦确定 就不能修改 。
  • 可以直接通过下标 或索引 的方式调用指定位置的元素 速度很快 。
  • 数组的分类:
    按照维度:一维数组 、 二维数组 、 三维数组 。
    按照元素的数据类型分:基本数据类型元素的数组 、 引用数据类型元素的数组, 即对象数组。

使用

  • 声明方式

    Java 中声明数组时不能指定其长度 (数 组中元素的), 例如: int a[5 ]; // 非法

  • 初始化

    一维
    //1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行
    int ids[] = new int[]{1001,1002,1003,1004};
    //1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
    String[] names = new String[5];
    names[0]="钱学森"
    names[1]="邓稼先"
    names[2]="袁隆平"
    		
    //错误的写法:
    //int[] arr1 = new int[];
    //int[5] arr2 = new int[5];
    //int[] arr3 = new int[3]{1,2,3};
    		
    //也是正确的写法:
    int[] arr4 = {1,2,3,4,5};//类型推断
    
    二维同理
    
    总结,静态初始化直接赋值,不写数组大小。动态初始化需指定数组的形状(大小)
    
    

    注意默认初始化值:

    数组本身是引用类型,所有在二维数组中,第二维的元素默认为null指针

  • 内存结构

    属于概念理解,一维举例string那边有点瑕疵。

    一维:

    二维:

一维数组访问简单,通过下标就可以,数组名就是数组开始的地址

二维数组的访问需要注意:

package com.atguigu.java;

public class ArrayTest3 {
	public static void main(String[] args) {
		
		int[][] arr = new int[4][3];
		System.out.println(arr[0]);//[I@15db9742 
		System.out.println(arr[0][0]);//0	
        
//		System.out.println(arr);//[[I@6d06d69c
		
		float[][] arr1 = new float[4][3];
		System.out.println(arr1[0]);//地址值
		System.out.println(arr1[0][0]);//0.0
		
		String[][] arr2 = new String[4][2];
		System.out.println(arr2[1]);//地址值
		System.out.println(arr2[1][1]);//null
		
		double[][] arr3 = new double[4][];
		System.out.println(arr3[1]);//null
//		System.out.println(arr3[1][0]);//报错
		
	}
}
  • 数组中常用的算法

    排序(待总结)

  • Arrays 工具类的使用

java.util.Arrays 类即为操作数组的工具类 包含了用来操作数组 (比如排序和搜索) 的各种方法

  • 数组常见异常

public class ArrayExceptionTest {
	public static void main(String[] args) {
		
		//1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion
		int[] arr = new int[]{1,2,3,4,5};
		
//		for(int i = 0;i <= arr.length;i++){
//			System.out.println(arr[i]);
//		}
		
//		System.out.println(arr[-2]);
		
		
		//2.空指针异常:NullPointerException:通过空指针去找值
		//情况一:
//		int[] arr1 = new int[]{1,2,3};
//		arr1 = null;
//		System.out.println(arr1[0]);
		
		//情况二:
//		int[][] arr2 = new int[4][];
//		System.out.println(arr2[0][0]);
		
		//情况三:
		String[] arr3 = new String[]{"AA","BB","CC"};
		arr3[0] = null;
		System.out.println(arr3[0].toString());
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434667.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号