Supporting code for Think Java by Allen Downey and Chris Mayfield.
This is a Git repository that contains the code examples from the book and starter code for some exercises.
Git is a version control system that allows you to keep track of the files that make up a project. A collection of files under Git's control is called a repository.
There are several ways you can work with the code:
You can create a copy of this repository on GitHub by pressing the "Fork" button in the upper right. If you don't already have a GitHub account, you'll need to create one. After forking, you'll have your own repository on GitHub that you can use to keep track of code you write. Then you can ``clone'' the repository, which downloads a copy of the files to your computer.
Alternatively, you could clone the repository without forking. If you choose this option, you don't need a GitHub account, but you won't be able to save your changes back in GitHub.
If you don't want to use Git at all, you can download the code in a zip archive using the "Download ZIP" button on this page, or this link.
To clone a repository, you need a Git client installed on your computer.
The URL of this repository is
If you use Git from the command line, you can clone it like this:
git clone https://github.com/AllenDowney/ThinkJavaCode.git
After you clone the repository or unzip the zip file, you should have a directory called
ThinkJavaCode with a subdirectory for each chapter in the book.
All examples in this book were developed and tested using Java SE Development Kit 8. If you are using a more recent version, the examples in this book should still work. If you are using an older version, some of them may not.