Java Main Method Explained - What Does All That Stuff Mean?