'$' используется в качестве символа-разделителя для компилятора Java, чтобы указать, когда класс объявлен под другим классом. Например, внутренний класс с именем Foo внутри Bar при компиляции будет иметь вид 'Bar$Foo.class', а анонимный класс внутри Bar будет иметь вид 'Bar$1.class'