这两个Java之间的区别(创建对象)

use*_*886 0 java multithreading object

我正在学习Java中的线程,我遇到过这两个:

类Runner实现了runnable,并传递给Thread对象中的构造函数

  1. Runner runner = new Runner();
    Thread thread1 = new Thread(runner);

  2. Thread thread1 = new Thread(new Runner());

我从未遇到过第二种选择.如果有人可以帮助初学Java程序员并告诉我第二个变体的用途是什么,以及在构造函数中创建类的实例时实际调用它会是什么呢?

谢谢.

ajb*_*ajb 5

没有区别,除了在第一个之后,你有一个runner引用的变量Runner,而在第二个之后,你没有.但是它们都创建了一个新Runner对象,并Thread使用该新对象构造了一个新对象.