《Java编程思想》第十六章 数组

目录

 

前言:

1. 数组为什么特殊

2. 数组的一些特点

总结


前言:

本系列是我本人阅读java编程思想这本书的读书笔记,主要阅读第五章到第十七章以及第二十一章的内容,今天的笔记是第十六章

 对于数组来说,你可以创建它并用整型的索引值来访问它们的元素,并且它的元素个数一旦确定之后就不能改变。但是在有些时候,你需要一些更复杂的操作,这个时候你就要考虑一下是用数组还是使用更加灵活的容器了。

1. 数组为什么特殊

java有很多种方式可以持有对象,那么数组为什么显得与众不同呢。java中,数组是随机访问速度最快的和存储效率最高的访问一组引用对象的方式,因为数组就是一个简单的线性表,但是为了达到这种访问速度,数组必须固定大小,这就对数组的使用的便利性产生了一定的影响,所以就有了容器对象,尤其是ArrayList对象,因为底层实现是数组,所以它具有数组随机访问快的优点,而且它还能够自动扩容,就不用为了能装入多少元素而发愁了。但是arrayList相比数组来说,因为有着扩容的开销,所以性能还是要比数组要慢上不少。数组相比与其他容器来说,一个很大的优点就是数组明确的知道自己所持有的对象是什么具体的类型,而其他的一些容器在不用泛型的时候只是把对象都视为Object去处理。数组相比其他其他容器来说还可以持有基本类型,这些都是容器类做不到的(容器类通过接受基本类型的包装类来达到看起来可以持有基本类型)。

2. 数组的一些特点

  • 数组标识符说到底,只是一个引用,指向在堆中创建的一个真实对象,这个对象用来保存指向其他对象的引用。数组有几种初始化方式,分为静态初始化、动态初始化和默认初始化
//默认初始化,声明并创建内存空间,等待赋值。
int arr[] = new int[5];
//动态初始化,声明并创建内存空间,并赋值。
int arr[] =new int[5]{1,2,3,4,5};
//静态初始化
int arr[] ={1,2,3,4,5};
  • java中,还可以返回一个数组,而且不需要担心要为数组“负责”,因为当你用完后,垃圾回收器会清理掉它。
  • 多维数组,对于基本类型的多维数组来说,创建起来很方便,只有使用花括号把每个向量分开即可,就像这样
int[][] a={1,2,3},{4,5,6}
  • 当然,也可以用new来分配数组,像这样
int[][][] a=new int[2][2][4];
  • 要注意一点,当数组的维度大于一维时,用new来分配数组的时候第一个方括号里必须要有值。

总结

因为数组其实没有什么好说的,书中就列举了数组的一些特点和Arrays类中的一些api方法,Arrays中有一套用于数组的static实用方法,由于这些方法在java api文档中都能找到,所以我在文章中就不作叙述了,到此,本章就结束了。

 

你可能感兴趣的:(java编程思想,阅读笔记)