In the first example, you are creating a new Thread object (line 6) and then you print out the name of that object on line 8. Note that line 7 does nothing: you call the currentThread() method but you're not doing anything with the return value, so nothing happens.
In the second example, you get the current (existing) Thread object, which is the thread that the main() method runs in, and you print its name.
The two pieces of code are not doing the same thing. Did you expect them to give the same output?