数组

  1. Java语言中的数组是一个引用数据类型,在堆内存中。数组的父类是Object.

  1. 数组实际上是是一个容器,可以同时容纳多个元素(数组是一个元素的集合)。

  2. 数组当中可以存储基本数据类型的数据,也可以存储引用数据类型的数据。

  3. 数组当中如果存储的是“java对象”的话,实际上存储的是对象的“引用”(内存地址)。

  4. 数组一旦创建,在java中规定,长度不可变。

  5. 数组的分类:一维数组、二维数组。。。

  6. 所有的数组对象都有length属性,用来获取数组中元素的个数。

  7. java中的数组要求数组内元素类型统一。

  8. 数组在内存方面存储的时候,数组中的元素内存地址是连续的。

  9. 数组中首元素的内存地址作为整个数组对象的内存地址。

  10. 数组中的每一个元素都是由下标的,下标从0开始,以1递增,最后一个元素的下标是:length-1

    下标非常重要,因为我们对数组进行“存取”的时候,都需要通过下标来进行。

  11. 数组这种数据结构的优点和缺点是什么?

    优点:检索效率极高

    缺点:第一:随机增删元素效率较低;

    第二:不能存储大数据量

  12. 一维数组初始化

    静态初始化:

    动态初始化:

  13. main方法String数组

    这个数组是留给用户的,用户可以在控制台上输入参数,这个参数会被自动转换为String[] args,idea中run-edit configurations-

  14. 数组扩容

    先新建一个大容量数组,然后将小容量数组中的数据一个一个拷贝到大数组中。

    数组扩容效率较低,可以在创建数组时预估数组需要多长。

  15. 数组拷贝

    System.arraycopy(5个参数)
  16. 二维数组

    二维数组实际上是一个特殊的一维数组,特殊在这个一维数组的每一个元素都是一个一维数组

  17. 常见的算法(面试题):

    1. 排序算法

      • 冒泡排序算法

        1. 每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边(冒出最大的哪个气泡)。

        2. 核心:

          拿着左边的数字和右边的数字比对,当左边>右边,交换位置。

      • 选择排序算法

        1. 选择排序比冒泡排序效率高,高在交换位置的次数上,每次交换都更有意义。

        2. 循环一次,找出参加比较的数据中最小的数,拿着这个最小的数和最前面的数据“交换位置”

    2. 元素查找

      二分法查找:基于排序的基础之上,没有排序的数据无法查找

  18. Arrays工具类的使用

    所有方法都是静态的,直接用类名调用

    我们开发的时候要参考帮助文档

posted on 2022-02-08 22:11  pandastudy  阅读(47)  评论(0)    收藏  举报