Цитата ничего не говорит о том, что произойдет, если вы напишите программу, содержащую кириллицу / иврит. Фактически, в разделе перед тем, который вы цитировали, написано:
3.1 Unicode
Программы написаны с использованием набора символов Unicode.
Обратите внимание, что «разрешает» здесь означает, что этот шаг перевода добавляет новую возможность к Java. Когда вам разрешено что-то делать, вы можете, но не обязаны делать это.
Цитата просто говорит, что лексический переводчик превратит что-либо в форме \uxxxx
в соответствующий символ Unicode U + xxxx.
Естественным следствием этого является то, что вы можете написать программу, содержащую любую кодовую точку Unicode (т.е. «любую программу»), используя только клавиатуру ASCII. Как? Всякий раз, когда вам нужно написать какой-нибудь не-ASCII символ, просто напишите его escape-код Unicode.
В качестве конкретного примера:
Это допустимые операторы Java:
int Д = 0;
System.out.println("Д");
Но допустим, что мой текстовый редактор может обрабатывать только текст ASCII или что у меня только американская клавиатура, поэтому я не могу набрать «Д». Язык spe c говорит, что я все еще могу написать это в ASCII, например:
int \u0414 = 0;
System.out.println("\u0414");
Это будет делать то же самое.