Книжки

Книги, которые я прочитал и, соответственно, могу рекомендовать.

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.