通过Java中的构造函数调用没有实例的方法

Raú*_*ela 2 java

我非常怀疑这个动作是什么以及如何在记忆中进行管理.

在main()方法中,我制作了这些句子或说明.

public static void main(String[] args) {
    int i = 0;
    int j = new Random().nextInt(100); // As it is called this way of acting or as it is called.
}
Run Code Online (Sandbox Code Playgroud)
  • 我清楚它的作用是直接调用Random类构造函数方法,调用nextInt方法并生成一个存储在int j变量中的随机数,但我不知道如何定义这种类型的操作,我不知道是否做这种指示是正确的.

  • 我很想知道这种类型的动作是什么.

感谢您的关注.

PD:对不起..我正在学习

Era*_*ran 5

int j = new Random().nextInt(100);
Run Code Online (Sandbox Code Playgroud)

几乎是一样的

Random r = new Random();
int j = r.nextInt(100);
Run Code Online (Sandbox Code Playgroud)

即两者都创建类的实例(对象)Random,然后调用该实例的方法.

不同之处在于,在第一种情况下,您不会保留对已创建实例的引用,因此您无法再次访问该实例,并且由于不存在对该实例的引用,因此可以立即对其进行垃圾回收.

正如Andy建议的那样,您可以将其视为创建Random类的实例并将其分配给变量(称为nextInt()方法),然后退出声明该变量的范围:

int j;
{
    Random r = new Random();
    j = r.nextInt(100);
}
// at this point you have no access to the Random instance
Run Code Online (Sandbox Code Playgroud)

  • 你可能会说它更像是`int j; {Random r = new Random(); j = r.nextInt(100); }`. (2认同)