Essential Java is a free book about Java programming language.
It's part of Essential Programming Books.
It's written to provide clear and concise explanation of topics for both beginner and advanced programmers.
Most examples are linked to online playground that allows you to change the code and re-run it.
You can also quickly navigate to desired content using table of content on the left and search at the top (tip: you can navigate search using only a keyboard with '/' shortcut to start a search).
The content is based on now abandoned StackOverflow Documentation project. It has been heavily edited and improved.
Content is licensed under Creative Commons Attribution-ShareAlike 3.0.