Это не так - многие специальные символы действительно действительны для идентификаторов. Он определен в JLS # 3.8 :
Идентификатор представляет собой неограниченную последовательность букв Java и цифр Java, первая из которых должна быть буквой Java , [...] «Письмо Java» - это символ, для которого метод
blockquote>Character.isJavaIdentifierStart(int)
возвращает true. «Буква или цифра Java» - это символ, для которого методCharacter.isJavaIdentifierPart(int)
возвращает значение true.Например, это допустимое имя переменной:
String sçèêûá¢é£¥ = "bc";
Вы можете увидеть все допустимые символы с помощью этого простого кода:
public static void main(String args[]) { for (int i = 0; i < Character.MAX_VALUE; i++) { if (Character.isJavaIdentifierPart(i)) { System.out.println("i = " + i + ": " + (char) i); } } }
ps: хорошие примеры в блоге @ PeterLawrey