如何在 Java 中随时填充字符串数组?
How is it possible to populate a String array on the go in Java?
据我所知,如果我想创建一个空数组(稍后在我的程序运行时填充),我必须设置它的大小,以便 Java 知道要分配多少内存。因此,如果我创建以下 int 数组:
int[][] board = new int[3][3];
Java 将分配 3x3x4 字节的 RAM。
但是如果一个字符串是一个字符数组,Java 如何在不知道我的字符串有多长的情况下预测需要多少 RAM?例如:
String[] nameList = new String[5]
我放入此数组中的名称可以是任意长度的字符。在这种情况下如何分配内存?
该数组不包含任何字符串;它包含 对字符串的引用,最初是 null
.
创建字符串并将它们分配给数组元素
nameList[0] = "foo";
对分配给数组的内存量没有任何影响。
分配给数组以保存每个引用的确切内存字节数取决于系统。
原始数组保存实际值(不是对值的引用),并为每个元素使用已知数量的内存。
对象数组实际上是对对象的引用数组。默认情况下,所有此类引用都是 null
。当您更改数组的某些项目时,您实际上更改了引用。
据我所知,如果我想创建一个空数组(稍后在我的程序运行时填充),我必须设置它的大小,以便 Java 知道要分配多少内存。因此,如果我创建以下 int 数组:
int[][] board = new int[3][3];
Java 将分配 3x3x4 字节的 RAM。
但是如果一个字符串是一个字符数组,Java 如何在不知道我的字符串有多长的情况下预测需要多少 RAM?例如:
String[] nameList = new String[5]
我放入此数组中的名称可以是任意长度的字符。在这种情况下如何分配内存?
该数组不包含任何字符串;它包含 对字符串的引用,最初是 null
.
创建字符串并将它们分配给数组元素
nameList[0] = "foo";
对分配给数组的内存量没有任何影响。
分配给数组以保存每个引用的确切内存字节数取决于系统。
原始数组保存实际值(不是对值的引用),并为每个元素使用已知数量的内存。
对象数组实际上是对对象的引用数组。默认情况下,所有此类引用都是 null
。当您更改数组的某些项目时,您实际上更改了引用。