From a usage point-of-view, there is a difference between \\ and \newline:
\\
Tells LaTeX to start a new line. This command has a starred version and takes an optional parameter:
\\*: Similar to \\ but also tells LaTeX not to start a new page after the line by issuing a \nobreak.
\\[<len>]: This specifies the vertical space <len> to be inserted before the next line. Can also be negative.
The above two can also be mixed. That is, using both a starred + optional argument combination \\*[<len>].
\newline
Similar to \\.
From a technical point of view (in latex.ltx), these commands are defined as follows, justifying the similarity between \\ (unstarred and without optional argument) and \newline:
\DeclareRobustCommand\\{%
\let \reserved@e \relax
\let \reserved@f \relax
\@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak \@xnewline}%
\@xnewline}
\expandafter\let\expandafter\@normalcr
\csname\expandafter\@gobble\string\\ \endcsname
\DeclareRobustCommand\newline{\@normalcr\relax}
LaTeX also redefines \\ to mean other things depending on the environment(s) you use. For example, within an array or tabular environment, the commonly-used \\ has a slightly different meaning to when it is used in regular text.
\newlineis defined as the normal (i.e., without optional argument and non-starred) version of \\. – Gonzalo Medina Aug 30 '11 at 22:58latex.ltx1,\DeclareRobustCommand\newline{\@normalcr\relax}whereexpandafter\let\expandafter\@normalcr \csname\expandafter\@gobble\string\\ \endcsname. – Werner Aug 30 '11 at 23:28