Java 数组及数组的优点与缺点

1.java中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是Object。
2.数组实际上是一个容器,可以同时容纳多个元素。(数组相当于是一个数据的集合。)
  数组的字面意思是"一组数据"
3.数组当中可以存储"基本数据类型"的数据,也可以存放"引用数据类型"的数据。
4.数组因为是引用类型,所以数组对象是在堆当中的。(数组是存储在堆当中)
5.数组当中如果存储的是"java对象"的话,实际上存储的是对象的引用,或者叫内存地址。
6.数组一旦创建,在java中规定,长度不可变。
7.数组的分类:一维数组,二维数组,三维数组...多维数组(一维数组用的比较多,二维数组偶尔使用)
8.所有的数组对象都有一个length属性(java自带的),用来获取数组的个数。
9.java中的数组要求数组中的元素的类型统一。
  比如int类型的数组那么只能存储int类型,Person类型的数组只能存储person类型
10.数组在内存方面存储的时候,数组中的元素地址(存储的每一个元素都是有规则的挨着排列的)是连续的。
  这是数组存储元素的特点。数组实际上是一个简单的数据结构。
11.所有的数组都是拿第一个小方块的内存地址作为整个数组对象的内存地址。(数组中首元素的内存地址作为整个数组对象的内存地址)。
12.数组中每一个元素都是有下标的,第一个元素是0,以1开始递增 。最后一个元素的下标是length -1
下标非常重要,因为我们对数组中的元素进行"存取"的时候,都需要通过下标来进行。
12.数组这种结构的优点是什么?缺点是什么?、
优点:
  查询/检索某个下标上的元素效率极高。可以说是查询效率最高的数据结构。
为什么检索效率高?
  1.每一个元素的内存地址在空间存储上是连续的。
  2.每一个元素的类型是相同的,所以占用的空间大小一样
  3.知道每一个元素的内存地址,知道每个元素占用空间的大小,又知道下标记,
  所以通过一个数学表达式就可以算出来某个下标上元素的内存地址。直接通过内存地址定位元素,所以检索效率最高。
 
数组中存储100个元素或者100万个元素,在元素检索/查找方面,效率是相同的。
因为数组的元素不会一个一个去找,是通过数学表达式计算出来的(算出一个内存地址,直接进行定位)。
 
缺点:
  1.由于为了保证数组中每一个元素的内存地址连续,所以在数组上随机删除或者增加元素的时候 ,效率较低,因为随机增删元素会导致后面的元素统一向前或者向后位移的操作。
  2.数组不能存储大数据量,为什么?
  因为很难在内存空间上找到一块特别大的连续的内存空间。
 
13.注意:对于数组中最后一个元素增删,是没有效率影响的。
14.怎么声明一个一维数组呢?
下面的是语法格式:
  int[ ]array1;
  double[ ]array2;
  boolean[ ]array3;
  String[ ]array4;
  Object[ ]array5;
15.怎么初始化一个一维数组呢?
  包括2中方式:一种是静态初始化一维数组,动态初始化一维数组。
  语法格式是:
    静态初始化一维数组:
    int[ ] array = {100,200,300,55};
  动态初始化一维数组:
    int[ ] array = new int[5]; //这里的5表示数组的元素个数
    //舒适化一个5个长度的int类型数组,每个元素默认值0
    String[ ] array = new String[ 6];
    //初始化6个长度的String类型数组,每个元素默认值为null.
posted @ 2021-11-10 22:14  程序员hg  阅读(609)  评论(0编辑  收藏  举报