Multiple choice technology programming languages

What is the output for the below code ? class A implements Runnable{ public void run(){ System.out.println(Thread.currentThread().getName()); } } 1. public class Test { 2. public static void main(String... args) { 3. A a = new A(); 4. Thread t = new Thread(a); 5. t.setName("good"); 6. t.start(); 7. } 8. }

  1. good

  2. null

  3. Compilation fails with an error at line 5

  4. Compilation succeed but Runtime Exception

Reveal answer Fill a bubble to check yourself
A Correct answer
Explanation

The Thread object 't' is named 'good' before starting. When the thread executes, its run() method calls Thread.currentThread().getName(), which returns 'good'. The main thread creates and starts 't' but doesn't print anything itself.