[JBloch08]  [JB08]
Joshua Bloch.
Effective Java. Second Edition.
Sun Microsystems / Addison-Wesley, 2008.

[GBooch07]  [GB07]
Grady Booch.
Object-Oriented Analysis and Design with Applications. Third Edition.
Addison-Wesley, 2007.

[MFowler99]  [MF99]
Martin Fowler.
Refactoring - Improving the Design of Existing Code.
Addison-Wesley, 1999.

[MFowler03]  [MF03]
Martin Fowler.
Patterns of Enterprise Application Architecture.
Addison-Wesley, 2003.

[MFowler11]  [MF11]
Martin Fowler.
Domain-Specific Languages.
Addison-Wesley, 2011.

[MFowlerInjection]  [MFI]
Martin Fowler.
Inversion of Control Containers and the Dependency Injection pattern.

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.
Design Patterns: Elements of Reusable Object-Oriented Software.
Addison-Wesley, 1995.

[Java Collections]
Joshua Bloch.
Java Collections Framework.
Oracle, 2015:

[Java Language Specification]  [JLS12]
James Gosling, Bill Joy, Guy Steele, Gilad Bracha, Alex Buckley.
The Java Language Specification. Java SE 8 Edition.
Oracle, 2015:

[JKerievsky05]  [JK05]
Joshua Kerievsky.
Refactoring to Patterns.
Addison-Wesley, 2005.

Terence Parr.
The Definitive ANTLR Reference. Building Domain-Specific Languages.
The Pragmatic Bookshelf, 2007.
Language Implementation Patterns.
Create Your Own Domain-Specific and General Programming Languages.
The Pragmatic Bookshelf, 2009.