Like all Murach books, our Java Programming book is a hybrid between a reference and a tutorial.
Each chapter attempts to present its content clearly and concisely, so you can understand it without having to experiment with the code on their own. In addition, most chapters include one or more applications that put the skills that have been presented in the chapter into context, so you can see how they're typically used. We think this makes the book an excellent reference book.
At the end of each chapter, we provide exercises that you can do to gain hands-on experience with the skills presented in the chapter. This is essentially a tutorial for the skills that have been presented in the chapter. If you're already an experienced programmer, you might not need to do the exercises. But if you're a newbie, we think they're critical to the learning process.