Aaah.

Yes, this is interesting. System.out.print (and println) are static methods. That means you can use them without creating objects first. Java is an OOP environment, so this is a short-cut for using methods without all the code needed to first initialize the objects they belong to.

Think of System.out.print as being "tied" to the output stream of the console. You can redirect System.out to a file, a printer or any other device that can handle a stream. By default though, it is tied to the console.

You are in fact sending data to a output stream using System.out.

Hope this helps.