While going through the source code of java.lang.Thread class. Curiously I wanted to see how a run() method (user defined run()) is called by Threa
new HelloThread()
itself will call the init() method which will set your target. It will be set to null in case you are extending Thread class. So target will be null.
If you see docs for run() method it clearly says
If this thread was constructed using a separate Runnable run object, then that Runnable object's run method is called; otherwise, this method does nothing and returns.Subclasses of Thread should override this method.