在声明和方法中两次调用新的关键字

aru*_*un8 2 java collections

我正在努力重新考虑代码库.我想知道内存中究竟发生了什么,当像Vector这样的容器在声明和使用它的方法中实例化两次时.代码如下.

Vector<String> rows = new Vector<String>();
Run Code Online (Sandbox Code Playgroud)

在其使用的方法中,

rows = new Vector<String>();
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

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

如果你不在这两行之间使用变量,那么第一行是毫无意义的.


Jop*_*ops 6

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

Vector<String> rows = new Vector<String>();
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

rows = new Vector<String>();
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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