El misterio del error de comentario y otras historias ...
Introducción
¿Sabe que la siguiente es una expresión Java válida?
\u0069\u006E\u0074 \u0069 \u003D \u0038\u003B
Puede intentar copiarlo y pegarlo en el método principal de cualquier clase y compilarlo. Si luego agrega la siguiente declaración
System.out.println(i);
y después de la compilación, ejecute esta clase, ¡el código imprimirá el número 8!
¿Sabías que este comentario arroja un error de sintaxis en el momento de la compilación?
/*
* The file will be generated inside the C:\users\claudio folder
*/
Sin embargo, los comentarios no deben dar lugar a errores de sintaxis. De hecho, los programadores a menudo comentan fragmentos de código para que el compilador los ignore ... entonces, ¿qué está pasando?
, , Java char
.
char
, char
Java. . , char
:
char aCharacter = 'a';
, . , , . :
String s = "Java melius semper quam latinam linguam est";
char
, :
(
'&'
).
Unicode (,
'\u0061'
, 97'a'
).
escape- (,
'\n'
).
.
, , char
, , (, «Canc» «Enter» ).
«Esc» — vesper-bot.
, char
, . :
char aUppercase = 'A';
char minus = '-';
char at = '@';
char
2 (16 ), 0 65 535. , «», . ( ) Unicode ( ).
Unicode ( )
, char
16 65 536 . Unicode ( , , . .), . Unicode - , UTF-8, , , 8- ASCII, , , , ASCII code ( American Standard Code for Information Interchange).
Unicode char
, 4 , , \u
( ). :
char phiCharacter = '\u03A6'; // Capital Greek letter Φ
char nonIdentifiedUnicodeCharacter = '\uABC8';
Unicode ( ). , 4 65 536 .
Java 15 Unicode 13.0, , 65 536 . Unicode , 143 859 . . , Unicode, 16- char
, String
Character
, , .
escape-
char
escape-, , :
\b
backspace, ( Delete).
\n
( Ente).
\\
\ ( , \ escape-).
\t
( TAB).
\'
( ).
\"
( ).
\r
( , ).
\f
( , , ).
, '"'
, :
System.out.println('"');
:
char doubleQuotes = '"';
System.out.println(doubleQuotes);
:
"
escape- , , :
System.out.println(''');
, :
error: empty character literal
System.out.println(''');
^
error: unclosed character literal
System.out.println(''');
^
2 errors
, . , :
System.out.println("'IQ'");
:
'IQ'
, \"
escape-, . , :
System.out.println(""IQ"");
:
error: ')' expected
System.out.println(""IQ"");
^
error: ';' expected
System.out.println(""IQ"");
^
2 errors
:
System.out.println("\"IQ\"");
:
"IQ"
Java Unicode
Unicode . , Unicode , . , :
int i = 8;
:
\u0069\u006E\u0074 \u0069 \u003D \u0038\u003B
, :
System.out.println("i = " + i);
:
i = 8
, . , , () .
Unicode escape-
, Unicode , escape-. , , escape- \n
. Unicode 10 ( A). , Unicode:
char lineFeed = '\u000A';
:
error: illegal line end in character literal
char lineFeed = '\u000A';
^
1 error
, :
char lineFeed = '
';
Unicode , Java.
, '
, 39 ( 27) escape- \', Unicode:
char singleQuote = '\u0027';
:
char singleQuote = ''';
:
error: empty character literal
char singleQuote = '\u0027';
^
error: unclosed character literal
char singleQuote = '\u0027';
^
2 errors
, , , .
, D ( 13) escape- \r
. , :
char carriageReturn = '\u000d';
:
error: illegal line end in character literal
char carriageReturn = '\u000d';
^
1 error
, Unicode , , , , .
,
, 92 ( 5C) escape- \
, :
char backSlash = '\u005C';
:
error: unclosed character literal
char backSlash = '\u005C';
^
1 error
, :
char backSlash = '\';
'
escape-, , .
, "
, 22 ( 34) escape- "
, :
char quotationMark = '\u0022';
. :
String quotationMarkString = "\u0022";
:
error: unclosed string literal
String quotationMarkString = "\u0022";
^
1 error
:
String quotationMarkString = """;
Unicode, . , , , !
// char lineFeed = '\u000A';
// char carriageReturn = '\u000d';
, , ; !
, , :
/* char lineFeed = '\u000A';
char carriageReturn = '\u000d'; */
, - , - \u
. , :
/*
* The file will be generated inside the C:\users\claudio folder
*/
4 \u
, :
error: illegal unicode escape * The file will be generated inside the C:\users\claudio folder ^ 1 error
, char
Java . , , Java, Unicode. , Unicode , . , , , .
: 3.3.5 « » 1 «Java ». ( 3.3.5 «»).