Что такое уверенное знание java? Знать язык это примерно как уметь писать и читать. Вот мы все тут пишем и читаем, но нас почему-то не издают. В универе, если не читерить, то можно научиться писать простенькие программки, которые будут запускаться и решать определенную задачу. Для серьезной разработки этого мало. Обычно компетенции разработчика складываются из нескольких областей. Касательно java это весь синтаксис, ООП, coding conventions, коллекции, jvm и проч. В универе выдадут чуть-чуть 2, 4 и побольше 1. В универе надо брать математику, алгоритмы, теорию бд, анализ данных, сети... Это даст бэкграунд. Ни кодить ни проектировать там не научат.