Java для начинающих. Урок 28: Модификаторы доступа public, private, protected и default
Java для начинающих. Урок 26: Интерфейсы
Продвинутая Java: Введение в многопоточность в Java
Большие проблемы наследования в ООП
Java: что нужно знать новичку?
Java для начинающих. Урок 42: Метод equals() и String Pool.
Дженерики в Java. Проще чем кажется.
Как выбрать - JAVA vs Python