JLS 3.8 (http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.8)
Every character that is legally part of a Java identifier at any point, plus the . separator.
Unless you name your files in Unicode, probably not necessary!
Representing the smallest set of most likely class names: US ASCII, dot, dollar, underscore, and 0-9