Difficulty: Easy
Correct Answer: Thread(Runnable r, String name), Thread()
Explanation:
Introduction / Context:
The Thread class offers several constructors for supplying a target Runnable, a name, and an optional ThreadGroup. Recognizing valid signatures is a common certification topic.
Given Data / Assumptions:
Concept / Approach:
Valid overloads include Thread()
, Thread(Runnable)
, Thread(Runnable, String)
, Thread(ThreadGroup, Runnable)
, Thread(ThreadGroup, String)
, and Thread(ThreadGroup, Runnable, String)
, among others. There is no constructor that accepts an int priority
, and the order of parameters matters for the ThreadGroup/Runnable variants.
Step-by-Step Solution:
Thread(Runnable r, String name)
→ valid.Option 2: Thread()
→ valid.Option 3: Thread(int priority)
→ invalid (priority is set via setPriority()
).Option 4: Thread(Runnable r, ThreadGroup g)
→ invalid ordering; valid form is Thread(ThreadGroup g, Runnable r)
.Option 5: Thread(Runnable r, int priority)
→ invalid; no such constructor.
Verification / Alternative check:
Javadoc for java.lang.Thread
lists the available constructors and their parameter orders.
Why Other Options Are Wrong:
They either use unsupported parameter types or the wrong parameter order.
Common Pitfalls:
Confusing constructor signatures with setter methods like setPriority()
; swapping Runnable
and ThreadGroup
positions.
Final Answer:
Thread(Runnable r, String name), Thread()
Discussion & Comments