A basic difference: still I find that most of the programmer hardly uses string literal. String literal is generally a forgotten case.
A character sequence within single quote characters (‘) is a char literal, while within (`) is a string literal. That is especially important for trailing spaces: a string literal preserves the trailing space while a char literal ignores them.
This can be best understood by the following example: