本書は、Java言語でプログラムを設計する際に必要になる基本的な概念を説明する。Java言語は、豊富な機能を持つプログラミング言語であるが、プログラムを設計する際には、言語仕様やAPIの使い方以外にいくつかの重要な前提知識が必要になる。そのような前提知識として本書では、オブジェクト指向、デザインパターンやフレームワークというソフトウェアの設計技術、並行プログラミングなどの技術も取り上げている。