2

我正在重构代码库。我想知道当像 Vector 这样的容器在声明和使用它的方法中被实例化两次时,内存中到底发生了什么。代码如下。

Vector<String> rows = new Vector<String>();

在使用它的方法中,

rows = new Vector<String>();
4

3 回答 3

6

您的代码创建了两个单独的Vector实例。

如果您不在这两行之间使用变量,则第一行毫无意义。

于 2013-10-21T14:40:57.600 回答
6

您最终创建了 2 个对象,但最终只保留了一个。

Vector<String> rows = new Vector<String>();

在此处输入图像描述

rows = new Vector<String>();

在此处输入图像描述

您可以null在声明期间安全地将其设置为,然后仅在您第一次使用 rows 变量时才发出第二行。

于 2013-10-21T14:43:30.187 回答
0

分配了两个新Vector对象。第二个不知道也不关心第一个已分配。

于 2013-10-21T14:42:00.407 回答