java黑马数组学习笔记

本文详细介绍了Java中的数组,包括数组的格式、初始化方式(动态和静态)、索引的定义和作用,以及内存分配在栈和堆的区别。还讨论了数组操作中的常见问题,如索引越界和空指针异常,并提供了输出数组的方法。此外,文章还涉及了冒泡排序的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

数组

格式

  1. 数据类型 [ ] 变量名
  2. 数据类型 变量名[ ]

初始化

动态初始化
  1. 数据类型 [ ] 变量名 = new 数据类型[数组长度];
静态初始化
  1. 数据类型 [ ] 变量名 = new 数据类型[ ] { 数据1 , 数据2 , 数据3 , ……} ;

索引

定义
  1. 索引是数组中数据的编号方式
  2. 数组变量访问方式
    格式:数组名
  3. 数组内部保存的数据的访问方式
    格式:数组名[索引]
作用
  1. 索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名

特点

  1. 索引从0开始
  2. 索引是连续的
  3. 索引逐一增加,每次加1

内存分配

在这里插入图片描述

栈内存

栈内存:存储局部变量存储局部变量
定义在方法中的变量,例如:arr
使用完毕,立即消失

堆内存

堆内存:存储new出来的内容(实体,对象)

默认值

数组在初始化时,会为存储空间添加默认值
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null
每一个new出来的东西都有一个地址值
使用完毕,会在垃圾回收器空闲时被回收

数组操作常见问题

  1. 索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题

  2. 空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常

  3. 最大值 例子 定义一个整型int 类型 使其等于其取值范围最小然后就可以比较,如果比较的数大于max 则可以将其赋值给max 实现最大值的输出
    int max= Integer.MIN_VALUE;

  4. 最小值 也一样的原理:int min = integer. Max_VALUE;

  5. 输出数组的时候 可以使用遍历数组
    例如:
    1.使用for 循环输出其对应的数
    for (int i=0;i<number.length;i++){//遍历number数组使输出到控制台
    System.out.println(number[i]);
    }
    2.还有一种简单的方法 Arrays.toString(数组) 可以直接输出其对应数组
    System.out.println(Arrays.toString(数组));
    注意使用2方法时要导入对应的包;

冒泡排序

 package heima4.练习1;
public class 冒泡{
    public static void main(String[] args){
        int arr[]={1,2,3,5,9,4};
        for(int i=0;i<arr.length-1;i++){//-1是因为数组是从0开始计数的
            for (int j=0;j<arr.length-1-i;j++){//-i是因为前面以及将其排在指定位置了 不需要再进行循环
                if(arr[j]>arr[j+1]){
                    int a=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=a;
                }
            }
            }
        for (int i = 0; i < arr.length; i++)
            System.out.print(arr[i] + " ");

   }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值