Anton Sorokin Asked:2020-11-11 13:28:08 +0000 UTC2020-11-11 13:28:08 +0000 UTC 2020-11-11 13:28:08 +0000 UTC “ArrayList 是一个动态数组”是什么意思? 772 谷歌了一下,发现它List是一个动态数组。 而且总的来说,我经常在编程中遇到动态和静态这两个词。这是什么意思? list 3 个回答 Voted Best Answer Vlad from Moscow 2020-11-11T13:33:20Z2020-11-11T13:33:20Z 动态意味着容器元素的内存是在程序执行期间根据需要分配的。而静态的意思是在程序加载执行之前,分配内存的大小是已知的。 例如,可以使用大小固定且在程序执行期间不会改变的数组来实现列表。或者你可以这样实现一个列表,当一个新元素插入到列表中时,在插入元素时为其分配内存。 Uranus 2020-11-11T13:47:19Z2020-11-11T13:47:19Z 不能断章取意地考虑这些术语。关于数组——静态数组是一块专用内存区域,用于存储固定大小的数据;不能向静态数组添加新元素;动态数组是一种数据结构,其组织方式可以随时向数组添加新元素或删除任意元素。 术语静态和动态也可以有其他含义。例如,动态和静态链接。通过动态链接,部分代码被编译成库文件 (dll) 并在运行时连接到应用程序。使用静态链接,所有代码都直接编译成可执行文件。 Abmin 2020-11-11T13:35:37Z2020-11-11T13:35:37Z 例如,我们编写了一些处理数组的程序。在写这个程序的时候,需要声明一个数组,也就是给它设置一个固定的大小(比如从0到100个元素)。那么这个程序就不具有通用性,因为它可以处理一个不超过100个元素的数组。而如果我们只需要 20 个元素,但是内存会为 100 个元素分配空间,因为数组声明是静态的。
动态意味着容器元素的内存是在程序执行期间根据需要分配的。而静态的意思是在程序加载执行之前,分配内存的大小是已知的。
例如,可以使用大小固定且在程序执行期间不会改变的数组来实现列表。或者你可以这样实现一个列表,当一个新元素插入到列表中时,在插入元素时为其分配内存。
不能断章取意地考虑这些术语。关于数组——静态数组是一块专用内存区域,用于存储固定大小的数据;不能向静态数组添加新元素;动态数组是一种数据结构,其组织方式可以随时向数组添加新元素或删除任意元素。
术语静态和动态也可以有其他含义。例如,动态和静态链接。通过动态链接,部分代码被编译成库文件 (dll) 并在运行时连接到应用程序。使用静态链接,所有代码都直接编译成可执行文件。
例如,我们编写了一些处理数组的程序。在写这个程序的时候,需要声明一个数组,也就是给它设置一个固定的大小(比如从0到100个元素)。那么这个程序就不具有通用性,因为它可以处理一个不超过100个元素的数组。而如果我们只需要 20 个元素,但是内存会为 100 个元素分配空间,因为数组声明是静态的。