Я разделил запреты на 3 класса:

Класс Язык Javaсодержит в себе запреты, связаные со стандартными конструкциями Java.Эти запреты являются важными при объявлении объектов-дженериков.
Класс Методы содержит в себе запреты, которые важны при ООП. Важны, как ни странно!, при объявлении методов.
Класс Особыесодержит в себе запреты, с которыми на практике редко сталкиваются, но всё равно они существуют, и могут потратить много вашего времени, если о них не помнить.
Теперь разберём детальней:

