В контексте языка – всё. Ну или почти всё. Погуглите вопросы для собеседования и убедитесь: в теоретической базе нет принципиального деления на Junior или Senior.
Работодатель может закрыть глаза на скромный опыт, незнание каких-то фреймворков, сред разработки, отсутствие навыков тестирования кода или коллективной разработки. Но ООП и так называемый Java Core вы должны знать вплоть до самых исключительных случаев. Кстати, именно они и составляют основной пул вопросов технических специалистов.
Подготовиться очень просто. Прежде всего, надо пройти обучение с преподавателем и желательно в группе. Так вы и неудобные вопросы услышите, и оцените себя на фоне других. Будет ли это вуз, очные или онлайн-курсы – второстепенно. К примеру, у нас есть «полноразмерные» курсы для создания готовых специалистов с нуля.
Также надо много читать. Начните с «Изучаем Java», авторы Кэти Сиерра, Берт Бейтс. После этого приступайте к «Java. Библиотека профессионала» в двух томах, авторы Кей С. Хорстманн, Гари Корнелл. Дальше следуйте по списку.
Если всё изучите, отработаете на практике, создадите пару-тройку крутых проектов для портфолио – можете смело “обзывать” себя Java Junior Developer.
Это уже не джун а синьер!
Посмотрите на ресурсы подготовки к собеседованию:
http://javaops.ru/view/test
https://github.com/JavaOPs/topjava/blob/master/cv.md
Знать надо много, но главное- не зубрежка, а понимание. Те главное- практика.
Есть замечательная книга "Java 2. Библиотека профессионала. Том 1. Основы" Кей С. Хорстманн, Гари Корнелл.
Вот необходимо и достаточно знать и понимать все, что есть в этой книге.
При подготовке к собеседованию можно также использовать готовые вопросы из интеренета.
Например ,вот большой список вопросов «327 вопроса на собеседование Java Developer»