There really is no difference; your web root (where you upload your web site files to) is the "public_html" directory. The "www" directory is just a symbolic link (i.e., an aliased name that points to the same place) as public_html. To upload/publish, you should use "public_html", however, since some FTP and other publishing software can complain about a symbolic linked directory.
This is done for compatibility with the two default web roots hosting providers often use, to make migrating to our services easier by not having to change paths in scripts users might have from a previous provider that used another web root name.