Книжки
Книги, которые я прочитал и, соответственно, могу рекомендовать.
Java. Проектирование и программирование.
“Mastering Enterprise JavaBeans Third Edition”
Подробно описывается назначение и процесс построения EJB версии 2.1 и 3.0. Даются небольшие примеры структур бинов и дескрипторов развертывания на серверах приложений.
“Приемы объектно-ориентированного проектирования. Паттерны проектирования”
Классический труд “банды четырех”. Справочник простых и проверенных временем приемов решения типичных задач, возникающих в процессе проектирования программного обеспечения. ООП. Основной плюс, помимо расширения кругозора в плане формирования архитектуры в том, что все паттерны получили свои названия. Это позволяет в дальнейшем легко ориентироваться в смежной литературе или чужом java-проекте, структура которого строится с применением паттернов.
“Архитектура корпоративных программных приложений”
По аналогии с паттернами проектирования ПО, приводятся более крупные типовые решения с области построения приложений. Паттерны описываются в конкретных областях с указанием способов java-реализации.
“Java в примерах. Справочник”
Эта книга отличается от подобных ей обилием документированного java-кода. Приводится ряд задач с применением операций ввода/вывода, потоков исполнения, сериализации, сетевых операций, Swing, JavaBeans, RMI, SQL, XML и пр. Рекомендую к прочтению после закрепления java-основ.
“Thinking in Java”
Известная книга Брюса Эккеля. Хорошее подспорье для начинающего java-программиста. В доступной форме описывает основы языка, дает ряд примеров и в конце каждой главы приводит серию упражнений на закрепление пройденного.
“Java 2. Наиболее полное руководство”
Не самая новая книга по Java, но если ты только начинаешь изучение — must have. В книге приводится подробное описание языка и ряда классов JFC. Знания, которые с годами только расширились.
“Регулярные выражения (карманный справочник)”
Удобный справочник по регулярным выражениям. Приводится краткое описание форматов построения выражений для детерминированных и недетерминированных конечных автоматов, а также особенности построения выражений в Perl, Java, .NET и C#, Python, библиотеке PCRE, PHP, vi, Javascript и unix-утилит awk, sed и egrep.