Документы Java для Общих типов имеют действительно хороший параграф об этом - и это относится ко всем языкам, которые поддерживают переменные типа:
Соглашения об именовании параметров типа
По соглашению имена параметров типа состоят из одинарных прописных букв. Это резко контрастирует с соглашениями об именах переменных, о которых вы уже знаете, и на то есть веская причина: без этого соглашения было бы трудно определить разницу между переменной типа и обычным именем класса или интерфейса.
Наиболее часто используемые имена параметров типа:
....
T - Тип
По сути, вы хотите иметь возможность быстро распознать, что что-то является переменной типа, а присвоение имени переменной типа T
в какой-то момент стало стандартным соглашением о коде.
Документы Microsoft по C ++ и C # также имеют это соглашение.