如何在 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。当您更改数组的某些项目时,您实际上更改了引用。