04-数组(Java基础)

本文介绍了Java中数组的概念、定义格式、访问方式以及常见问题,包括一维数组的初始化、索引访问和长度属性。此外,还探讨了数组的简单算法如冒泡排序和二分查找,并对多维数组进行了讲解。同时,文章阐述了数组在内存中的存储原理,涉及Java虚拟机内存划分。最后,提出了两个基于数组的综合练习:寻找数组中的最大值和最小值,以及模拟快递E栈系统。
摘要由CSDN通过智能技术生成

感谢你的路过,希望学生的笔记能给你一点微不足道的参考(2/100)
Java基础思维导图,完整Java体系的链接
在这里插入图片描述

一,什么是数组?

1.1数组的概念

    数组是相同数据类型的多个数据的容器。
    这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个 元素外,每一个元素都有唯一的后继元素。(“简单理解就是:一个跟一个顺序排列”)。

1.2数组的格式

    定义
        方式一
            格式:
                数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
            数组定义格式详解:
               数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
               [] : 表示数组。                数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
               new:关键字,创建数组使用的关键字。
               数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
               [长度]:数组的长度,表示数组容器中可以存储多少个元素。
            注意:
               数组有定长特性,长度一旦指定,不可更改。 和水杯道理相同,买了一个2升的水杯,总容量就是2升,不能多也不能少
             举例:
               定义可以存储3个整数的数组容器,代码如下:int[] arr = new int[3];
      方式二
            格式:
               数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
            举例:
               数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
               int[] arr = new int[]{1,2,3,4,5};
       方式三
            格式:
               数据类型[] 数组名 = {元素1,元素2,元素3…};
            举例:
               定义存储1,2,3,4,5整数的数组容器
               int[] arr = {1,2,3,4,5};

1.3数组的访问

   索引:
      每一个存储到数组的元素,都会自动的拥有一个编号,
      从0开始,这个自动编号称为数组索引 (index),可以通过数组的索引访问到数组中的元素。
   格式:数组名[索引]
   数组的长度属性:
      个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的长度,
      语句为: 数组名.length ,属性length的
      执行结果是数组的长度,int类型结果。由次可以推断出,数 组的最大索引值为 数组名.length-1 。
   索引访问数组中的元素:
      数组名[索引]=数值,为数组中的元素赋值
      变量=数组名[索引],获取出数组中的元素
代码:

package JieShao;

public class Demo01_JiChu {
   

	
	/**
	 * 数组的基础知识 
	 * @param args
	 */
	public static void main(String[] args) {
   
		demo01();
	}
	
	/**
	 * 数组的常见创建格式
	 */
	public static void demo01() {
   
		// 常用格式1.创建数组的同时,指定数组中的内容。
		// 数据类型[] 数组名称 =  {元素1,元素2,元素3...};
		int[] args = {
   10,11,12,13};
		
		// 常用格式2.创建数组的同时,指定数组的长度,不指定数组中的内容。
		// 数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
		int[] ages2 = new int[10];
		
	}
	
	
	/**
	 * 通过下标数组数据的方式
	 */
	public static void demo02() {
   
		int[] args = new int[10];
		// 1.给数组某个下标赋值:数组名称[下标] = 值;
		args[0] = 100;
		// 2.从数组某个下标取值:数组名称[下标]
		System.out.println(args[0]);
	}
	
	/**
	 * 数组遍历
	 */
	public static void demo03() {
   
		int[] args = {
   10,11,12,13};
		
		// 如何获取数组的长度:数组名称.length
		for(int index = 0;index < args.length; index++)
		{
   
			System.out.println(args[index]);
		}
	}
	
	/**
	 * 不常见的数组创建格式
	 */
	public static void demo04() {
   
		// 1.创建数组,不初始化
		// 格式: 数据类型[] 数组名;
		int[] nums; //nums = new int[];-赋值方式
		
		// 2,创建数组,并指定数组内容
		// 格式: 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
		int[] arr = new int[]{
   1,2,3,4,5};
	}
	
	
	/**
	 * 多维数组(了解)
	 * 创建格式:
	 * 数据类型[] 数组名 = new 数据类型[长度];
	 * int[][] 二维数组名称 = new int[长度][];
	 */
	public static void demo05() {
   
		int[][] nums = new int[10][];
		
		nums[0] = new int[] {
   1,2,3};
		
		System.out.println(nums[0][2]);
	}
}

1.4数组的常见问题?

   数组越界异常:索引超过了数组范围
   数组空指针异常:
      arr = null 这行代码,意味着变量arr将不会
      在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候 会抛出 NullPointerException 空指针异常。
代码:

package JieShao;

public class Demo02_ChangJianWenTi {
   

	/**
	 * 数组的常见问题
	 * @param args
	 */
	public static void main(String[] args) {
   
		demo02();
	}
	
	/**
	 * 数组下标越界问题
	 */
	public static void demo01() {
   
		 int[] array = {
    15, 25, 35 };

	     System.out.println
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值