There is a difference between what you can use and what you should use. Identifiers may start with underscore currency symbols or letters, but should start with a letter.
The subsequent characters can be any of the above plus 0123456789 but should be letters and numbers except in constants or package names.
$¢£₹123_45 might get past the compiler but it is not correct style. There are recommendations in the Java® Language Specification but that can be difficult to read.
According to that section of the JLS, you can't use "do" as a variable name because it's a keyword of the Java language. You can, however, use "dо" as a variable name because the second letter of that name is the Cyrillic letter o and not the Latin letter o. That could be a valuable technique for obfuscating your code...