Tipo de dado char

galera to tendo dificuldade em entender o tipo de dado char.

inicializar uma variável assim:

char a = ‘\uFFFF’, entendo que é uma representação unicode de um caracter.

se eu incializar assim:

char b= 65535, o caracteres são representados em números inteiros

e assim:

char c = ‘\123’ - não sei ??? o que é isso ? pq ele aceita ?

Se alguém puder esclarecer esse tipo char eu agradeço, pq eu to fazendo muita confusão.

O tipo char é um tipo inteiro, sem sinal, cujo valor vai de +0 até +65535.

Ele ocupa 2 bytes (assim como o tipo short, que é um inteiro com sinal que vai de -32768 até +32767).

A notação “\123” não é válida em Java, embora o seja em C/C++. Os únicos caracteres que podem suceder ao “" em Java são:
b -> \b = Backspace (ASCII 8)
t -> \t = Tab (ASCII 9)
n -> \n = Line Feed (ASCII 10)
f -> \f = Form Feed (ASCII 12)
r -> \r = Carriage Return (ASCII 13)
u -> \uXXXX - Unicode U+XXXX (onde X é um caracter hexadecimal).
\ -> \ = Contrabarra
’ -> ’ = Aspa simples
” -> " = Aspa dupla

Nessas linguagens, "\123" é a representação OCTAL do caracter ASCII 83 ("S").

Obrigado Thiago. Consegui entender.

Nos simulados do site http://www.danchisholm.net/ tem uma regra bem legal que pode ajudar na hora da prova. Eu decorei e nunca mais esqueci.
Eh assim.

big farms need red tractors

onde as letras em negrito referem ao que o thingol falou acima.

Abraço.