I can't seem to understand how these two segment of lines interact. while (true) { Thread current = currentThread(); System.out.println(this); public String toString() { return "#" + getName() + ": " + countdownIndex; } The program is blank without the first segment, but if the second segment is commented out, it prints out this: Thread[1,5,main] Thread[1,5,main] Thread[1,5,main] Thread[1,5,main] Thread[2,5,main] Thread[2,5,main] Thread[2,5,main] Thread[2,5,main] Thread[3,5,main] Thread[3,5,main] Thread[3,5,main] Thread[3,5,main] Thread[4,5,main] Thread[4,5,main] Thread[4,5,main] Thread[4,5,main] I don't understand the sequence. How does the toString() method interact with the data, if it comes later in the program? Also, what does the above print out mean? Why the 5's and the main? I understand that the ascending numbers are each thread.