Essential Java is a free book about Java programming language.
It's written to provide clear and concise explanation of topics for programmers both starting to learn the language as well as those diving in more complex topics.
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.