Is there a difference between single and double quotes in Java?

Let's consider this lines of codes (Java):

System.out.println("H"+"A"); //HA
System.out.println('H'+'a'); //169

1) First line is concatenation of H and A that will result in HA (String literal)

2) Second we are adding the values of two char that according to the ASCII Table H=72 and a=97 that means that we are adding 72+97 it's like ('H'+'a').

3) Let's consider another case where we would have:

System.out.println("A"+'N');//AN

In this case we are dealing with concatenation of String A and char N that will result in AN.


A char is a single UTF-16 character, that is a letter, a digit, a punctuation mark, a tab, a space or something similar.

A char literal is either a single one character enclosed in single quote marks like this

char myCharacter = 'g'; 

or an escape sequence, or even a unicode escape sequence:

char a = '\t';    // Escape sequence: tab
char b = '\177'   // Escape sequence, octal.
char c = '\u03a9' // Unicode escape sequence. 

It is worth noting that Unicode escape sequences are processed very early during compilation and hence using '\u00A' will lead to a compiler error. For special symbols it is better to use escape sequences instead, i.e. '\n' instead of '\u00A' .

Double quotes being for String, you have to use a "double quote escape sequence" (\") inside strings where it would otherwise terminate the string.
For instance:

System.out.println("And then Jim said, \"Who's at the door?\"");

It isn't necessary to escape the double quote inside single quotes.
The following line is legal in Java:

char doublequote = '"';

Single quote indicates character and double quote indicates string..

char c='c';

'c'-----> c is a character

String s="stackoverflow";

"stackoverflow"------> stackoverflow is a string(i.e collection if characters)


Use single quotes for literal chars, double quotes for literal Strings, like so:

char c = 'a';
String s = "hello";

They cannot be used any other way around (like in Python, for example).

Tags:

Java

Syntax