Generalnie nie ma takiej konwencji dla kodu (który pisze programista).
Natomiast dollar$
jest stosowany w syntetycznie wygenerowanych nazwach.
Np. kompilator javy sam generuje takie nazwy w bajtkodzie. Użyj klasy wewnętrznych, lambd - zobacz sobie na dysku co siedzi w folderach z plikami .class, i(lub) podejrzyj je przy użyciu javap
.
Ty tego w kodzie nie widzisz, ale takie pola i metody się pojawiają w bajtkodzie i jvm je normalnie obsługuje. Typowy framework bazujący na refleksji (np. lombok) - omija te pola (lub nie - zależy od frameworku i potrzeby - np. metoda toString
pewnie nie powinna pokazywać zawartości pól technicznych, wygenerowanych przez kompilator - bo i tak będą kompletnie nieczytelne).
Jeszcze więcej takich pól pojawia się w bajtkodzie jeśli piszesz w alternatywnych języku na jvm (scala, kotlin).
Czyli: jest taka konwencja używana przez kompilatory do bajtkodu.