java笔记(五)

 

五、数组

1,数组概述及格式

  • 数组:同一种类型数据的集合。其实数组就是一个容器。
    • 只要是容器,就得重点掌握。
  • 数组的好处
    • 可以自动给数组中的元素从0开始编号,方便操作这些元素。
  • 数组的定义格式
•	A:当不明确数组中的元素时,动态初始化
•	    举例 :
•	    int[] arr = new int[3];
•	    arr[0] = 3;
•	B:当明确数组中的元素时,静态初始化
•	    举例 :
•	    int[] arr = new int[]{1,2,3,4,5};
•	    int[] arr = {1,2,3,4,5};
  • 什么时候使用数组?
  • 当要操作的同种数据类型的数据是多个的时候,你就得想着先把这些数据用数组进行存储。

2.数组的内存图

  • A:栈
    • 存储的是局部变量(在函数中定义的变量)
    • 变量被使用完后,立即自动释放。
  • B:堆
    • 存储的是实体(数组和对象)
    • 实体:new出来的东西,可以存放很多数据的东西。
    • 堆内存数据的特点
    • 当实体不在被使用的时候,会在jvm空闲的时候,通过java垃圾回收机制使其自动释放。
    • 堆内存中的变量都有默认初始化值
      • char --> '\u0000' 空字符,unicode编码。
      • boolean --> false
      • double --> 0.0
      • int --> 0
      • 每个实体都有内存地址
    • C:方法区 后面讲。(static)
    • D:本地方法区 调用是Windows系统底层资源,我们不用考虑。
    • E:寄存器 CPU相关。我们不用考虑。

 

3.数组的常见问题

 

  • A:当你访问到数组中的最后一个元素时,还想继续访问,这个时候,会发生角标越界异常。
    • ArrayIndexOutOfBoundsException
  举例 
    int[] arr = new int[3];
    System.out.println(arr[3]);

 

  • B:当数组不在指向某个实体时,你还继续访问,就会发生空指针异常。
    • NullPointerException
举例 
    int[] arr = new int[3];
    arr = null;
    System.out.println(arr[1]);

4.数组的操作

  • 数组遍历
  • 数组获取最值
  • 基本查找
  • 数组的参数传递

5.数组的练习

  • 数组反转

6.数组的应用

  • 查表法(星期的示例)

 

7.二维数组概述和定义

  • 格式1:int[][] arr = new int[3][2];
    • A:定义了名称为arr的二维数组
    • B:二维数组中有3个一维数组
    • C:每一个一维数组中有2个元素
    • D:一维数组的名称分别为arr[0], arr[1], arr[2]
      • arr:二维数组名
      • arr[1]:二维数组中的第二个一维数组名
      • arr[1][1]:二维数组中的第二个数组的第二个元素
    • E:给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;
  • 格式2int[][] arr = new int[3][];
    • A: 二维数组中有3个一维数组
    • B: 每个一维数组都是默认初始化值null
    • C: 可以对这个三个一维数组分别进行初始化
      • arr[0] = new int[3];
      • arr[1] = new int[5];
      • arr[2] = new int[7];
  • 格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};arr[2].length
    • A:二维数组有3个一维数组。
    • B
      • 第一个一维数组有3个元素
      • 第二个一维数组有2个元素
      • 第三个一维数组有4个元素

8.二维数组的应用

  • 二维数组的遍历
•	int[][] arr2 = new int[2][3];
•	public static void printArray2(int[][] arr2){
•	    for(int i=0; i<arr2.length; i++){
•	        for(int j=0; j<arr2[i].length; j++){
•	            System.out.print(arr2[i][j]+" ");
•	        }
•	        System.out.println();
•	    }
•	}
  • 二维数组的应用
	求一年的销售总额。
	public static void printArray2(int[][] arr2){
	    int sum = 0;
         for(int i=0; i<arr2.length; i++){
	        for(int j=0; j<arr2[i].length; j++){
	            sum = sum + arr[i][j];
	        }
	        System.out.println("sum =" + sum);
	    }
	}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值