day04 数组

  • 数组是一个容器,用来存一批同种类型的数据的

  • 数组适合于存储和操作批量数据

  • 静态初始化指的是:在定义数组时,直接给数组中的数据赋值。

  • 动态初始化:在定义数组时,不直接给数组中的数据赋值,指定元素类型和长度就行

  • 数组变量存放在栈内存,(数组对象)元素和索引存放在堆内存,变量的值就是数组对象存储在堆内存中的地址值

  • 初始化的默认值:

  • 虚拟机的内存划分为方法区、栈、堆、本次方法栈、寄存器

  • 运行一个java程序,主要看JVM中包含的哪几部分内存区域?

方法区:程序编译后的class文件
​
栈内存:方法运行时进入的区域
​
堆内存:new出来的东西都放在堆内存存放对象实例和数组

  • 简单说说int a = 10;int[] arr = new int[3]这两行代码的执行原理?

a是变量,直接放在栈中,a变量存储的数据就是10这个值
​
new int[3] 是创建一个数组对象,会在堆内存中开辟区域,存储3个整数
​
arr是变量,在栈中,arr中存储的是数组对象在堆内存中的地址值
  • 基本类型的变量里面存储的是具体的值,引用类型变量存储的是地址值,根据地址值到堆中找相应的对象。

Q&A
  1. 请写出数组的几种初始化方式

    静态初始化:int[] a=new int[]{1,2,3,4};int[] a={1,2,3,4};
    ​
    动态初始化:int[] a=new int[4];

  2. 请写出遍历数组的方式

    for(int i=0;i<a.length;i++){
    ​
        System.out.println(a[i]);
    ​
    }
  3. 请说一说ArrayIndexOutOfBoundsException是什么意思,该如何避免这个异常?

    数组下标越界异常
    确保访问数组元素的下标在取值范围内
  4. 你是怎么理解多维数组的?

    我认为多维数组是一个数组的嵌套,将一个数组变量作为元素保存在另一个数组变量中,同时这个数组变量还可以作为元素继续嵌套。

数组的特点:

长度是定义时固定的,不能改变

存储的元素是同一种数据类型

存储的是连续的空间(所以查找速度很快)

Arraylist用数组实现,所以查找速度很快

数组支持存放不同长度的元素

数组不支持存放不同类型的元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值