JVM运行的时候,操作系统给它分配的资源和空间是有限的。所以,对程序的优化和完善,除了运行效率和代码可读性强,空间的利用率是很关键的。
对于楼主提出的问题:
1.第一种构造方法提供的是默认的构造方式,那一般是程序员无法确定要存入数据的长度时用到的。
2.第二种构造方法,是程序员知道了自己需要用到的数据长度,指定长度等于或者稍微大于该长度的ArrayList,使得空间资源利用率较高。
对于这一点,java集合中也提供了另外一些机制和方法以供利用。比如:
ArrayList中有提供的一个函数ensureCapacity。
在添加大量元素前,应用程序可以使用 ensureCapacity 操作来增加 ArrayList 实例的容量。
这可以减少递增式再分配的数量。也就是减少了利用不到的空间分配。
java是一种友好的编程语言,它再给我们提供便利工具的同时,也为效率做了基本的打算,而我们使用的时候就要去考虑它。
我们现在调试的还是小程序,当真正做项目的时候,利用到的空间和资源会更多,因此更实际的应该要考虑到效率问题,这就是其中一点。
希望能帮助到楼主。 |