数组

在java中,数组是一种引用数据类型
  • 数组中可以存储基本数据,也可以存储引用数据类型(存储其地址)

  • 数组一旦创建,长度不可变

  • 数组自带length属性

  • 数组中的元素类型要统一

  • 数组的初始化

    • 静态:int[] arr={1,2,3};
    • 动态:int[] arr=new int[3];
      3表示数组的元素个数
  • 方法的参数可以是一个数据,在调用方法时,如果想直接传入一个静态数组:(不能直接传{1,2,3})
    func(new int[]{1,2,3})

引用数据类型数组

以Animal,Cat,Car类(Cat为Animal的子类)为例
Animal[] animal=new Animal[3];
animal[0]= new Animal() //这样没问题
animal[1]= new Cat() //这样也没问题
animal[2]= new Car() //这样就不行了

Animal数组中可以放Animal对象,也可以放Animal的子类,但不能放其他与之无关的对象

数组扩容

java中的数组满了需要扩容的原理:创建一个大的数组,将原来的数组中的内容拷贝到新的数组中。
拷贝方法:System.arrycopy(五个参数)
第一个参数:原数组
第二个参数:开始拷贝的位置
第三个参数:目的数组
第四个参数:拷贝到目的数组中的起始位置
第五个参数:拷贝的长度

如果拷贝的位置有元素,则会覆盖掉原来的元素

面试题

为什么数组的检索效率最高???
一般回答:因为数组有下标
高分回答:因为数组的地址就是数组的第一个元素的地址,每个元素都是连续存储的,而且每个元素的大小是一样的,根据所查元素相对于第一个元素的偏移量,就可以计算出所查元素的地址,直接定位到这个元素了。

posted @ 2021-10-28 13:44  这个世界会好的  阅读(30)  评论(0编辑  收藏  举报