Java books and learning resources


The answers to this question were written by the joint efforts of the community. To improve this message, edit the existing responses. Publishing new responses and other actions are not available for it.

We collect a selection of high-quality literature on Java.

Add it if you have something to add to the general answer.


This list is included in the community-supported Collection of educational resources on programming.

Author: Nofate, 2015-04-14

1 answers

Core Java

For beginners:

  • Head First Java (2nd Edition). Kathy Sierra, Bert Bates.

    Russian translation: Learning Java. Kathy Sierra, Bert Bates.

    As is usually the case in the books Head First, you will have fun and learn the basics of Java programming in pictures. For experienced programmers, the book may cause a grin, but for a really beginner level, it is quite good.

  • Java: A Beginner's Guide. Herbert Schildt.

    Russian translation: Java. Beginner's Guide. Herbert Schildt.

  • Core Java Volume I: Fundamentals (9th Edition), Core Java Volume II: Advanced Features (9th Edition).

    Russian translation: Java. Professional library. Volume 1. Basics; Java. Professional library. Volume 2. Advanced Programming Tools. Kay S. Horstmann, Gary Cornell.

    Horstmann books they are written in a rather dry language and dump mountains of API documentation and kilometers of listings with full code examples on the reader. Reading them sequentially can be quite difficult, but the books will be an excellent desktop reference and recipe book.

  • Java™ Platform, Standard Edition 7 API Specification.

    Online documentation for the JAVA SE standard libraries.

Online courses, textbooks

Intermediate level:

  • Thinking in Java (4th Edition). Bruce Eckel.

    Russian translation: Java Philosophy. Bruce Eckel.

    A classic Javist folio. For comfortable reading, basic knowledge of the language is required, since the book does not set out to teach you to write Java from scratch, but to teach write idiomatically.

  • Java 8: The Complete Reference. Herbert Schildt.

    Russian translation: Java 8. Complete Guide. Herbert Schildt.

  • Effective Java (2nd Edition). Joshua Bloch.

    Russian translation: Java. Efficient programming. Joshua Bloch.

    Joshua Bloch in a sense continues the idea of the book Thinking in Java : even more delving into the features of the language and standard libraries, teaches you to write beautiful code.

  • The Well-Grounded Java Developer: Vital techniques of Java 7 and polyglot programming. Benjamin J Evans, Martijn Verburg.

    Russian translation: Java. A new generation of development. Benjamin Evans, Martin Verburg.

  • Java Puzzlers: Traps, Pitfalls, and Corner Cases. Joshua Bloch, Neal Gafter.

    Java Puzzlers gives the opportunity to those who I have already "learned the language" to test myself. The book contains 95 tasks with a trick: obvious at first glance code fragments that conceal a tricky bug. Some of the examples under consideration may seem far-fetched and unviable, but they fully reveal the subtle nuances of Java programming.

  • Java Concurrency in Practice. Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea.

    The most detailed guide to writing multithreaded Java code. Each topic is treated from different angles with several examples, so that by the end of the chapter there will be a complete understanding of the subject being condemned. It is important that one of the co-authors (Doug Lea) is the author of the standard library of concurrent primitives (java.util.concurrent).

  • Java Performance. Charlie Hunt, Binu John.

    Must read on java program optimization, JVM and garbage collector tuning, benchmarking, and profiling.

  • Core Java for the Impatient. Cay Horstmann.

    A book for the impatient, as the name suggests. Allows you to dive into the world of the Java language, tells everything that can actually be useful to a Java developer. Special attention is paid to the innovations of the eighth version of the language. At the end of each chapter, there are tasks for a more dense assimilation of the material. (Horstmann is not very fond of the language C++, sometimes jokes about it, like this: String[] badWords = {"sex", "drugs", "C++"};, from this is not so boring to read).

  • Java SE 8 for the Really Impatient. Cay Horstmann.

    Russian translation: Java SE 8. Introductory course by Kay S. Horstmann

    It is a continuation of the book Core Java for the Impatient , but here all the attention is paid to the innovations of the eighth version of the language, covers many aspects, whether it is lambda expressions, working with Stream API or multithreading. After each chapter are also present tasks for mastering the material.

  • Head First Design Patterns.Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra.

    Russian translation: Design patterns. Eric Freeman, Elizabeth Freeman

    A great book from O'Reilly publishing, in a fun way, will teach you the basic design patterns in Java.

  • Java 8 Lambdas. Richard Warburton.

    Russian translation: Lambda expressions in Java 8. Richard Warburton

    Usually, Java textbooks pay little or no attention to the topic of using lambdas and streams. Warburton's textbook makes up for this shortcoming.

Expert level:


Java EE

  • Java™ Servlet Specification 3.1

    Comprehensive official documentation on the operation and lifecycle of servlets.

  • Beginning Java EE 7. Antonio Gonsalves.

    Russian translation: Learning Java EE 7. Anthony Goncalves

  • Java EE 7. Basics Arun Gupta

  • Head First Servlets and JSP, 2nd Edition. Bryan Basham, Kathy Sierra, Bert Bates

  • Java Servlet and JSP Cookbook. Bruce W. Perry

    Russian translation: Java servlets and JSP. Collection of recipes. Bruce W. Perry


Spring

  • Spring Projects

    Official documentation about each Spring project. It is described in detail, but it is quite difficult and a lot, so for the first training I recommend starting with Spring Guides.

  • Spring Guides

Very simple and clear step-by-step lessons (in English) of various features of Spring projects, with the ability to immediately download the result and check it on your computer. The most up-to-date Spring tutorials that are available on the Internet, since constantly updated by the community. For a more detailed study, see official documentation.

  • Spring in action. Craig Walls

    Despite the fact that the book describes the already elderly 3rd version of Spring, the book is worth reading, as it introduces the reader to the framework in a very simple and detailed way.

  • Spring 5 for professionals. Juliana Kozmina, Rob Harrop, Chris Schaefer, Clarence Ho

    Long-term bestseller, considered the most comprehensive and authoritative guide to Spring.

  • Pro Spring Integration. Dr. Mark Lui, Mario Gray, Andy Chan and Josh Long

Pro Spring Integration is an authoritative book from experts that guides you through the vast world of Enterprise Application Integration (EAI) and the application of the Spring Integration infrastructure to solve integration problems.

  • Pro Spring 5, 5th Edition (2017) Iuliana Cosmina, Rob Harrop, Chris Schaefer, Clarence Ho (eng.)

With this book, you can learn the basics of Spring, a framework for the Java platform, as well as EJB and Hibernate. You will learn how to use Spring to create various parts of a Java application: transactions, the web, and much more. The sample application described in the book will allow you to put Spring technologies and methods into practice and see how they work together. The book is suitable for experienced users for Java developers.

  • Learn Microservices with Spring Boot: A Practical Approach to RESTful Services using RabbitMQ, Eureka, Ribbon, Zuul and Cucumber Moises Macero

Create a microservices architecture with Spring Boot, transforming the application from a small monolith to an event-driven architecture consisting of multiple services. This book follows a step-by-step approach to teaching microservice structure, test-driven development, Eureka, Ribbon, Zuul, and end-to-end tests with Cucumber.


Hibernate

  • Beginning Hibernate. Joseph B. Ottinger, Dave Minter, Jeff Linwood

    Despite the fact that the title of the book does not mention the JPA standard, most of the book is devoted to its implementation in Hibernate.

  • Java Persistence with Hibernate. C. Bauer, G. King, G. Gregory

    Comprehensive description of Hibernate and Java Persistence.

  • High-Performance Java Persistence book. Vlad Mihalcea.

This book explains in detail how to work with Hibernate ORM, as well as optimizing the code for better performance. This book was approved on the official Java account, and the author of the book is one of the developers of Hibernate. Also, the author of the book actively answers questions from users in https://stackoverflow.com


Swing

  • SWING: Efficient user interfaces. Ivan Portyankin.

  • Swing. A Beginner's Guide. Sshildt H.

    Russian translation: Swing. Beginner's Guide. Schildt G.

  • Swing Hacks. Tips and Tools for Killer GUIs. Joshua Marinacci, Chris Adamson.


JavaFX

  • JavaFX 2.0 RIA Application development. Timur Mashnin.

    It contains all the necessary information about components and their design using fxcss, working with animation, playing video and audio, and of course working with FXML.

  • Learn JavaFX 8. Kishori Sharan.

    The tutorial is in English, it describes in detail all the basic elements of JavaFX, features of their behavior and interaction, describes the observed properties and bindings (properties and bindings), and other useful features, such as printing and a detailed description of event processing.

  • JavaFX Guide on metanit.com


Reference books

  • Java 8 Pocket Guide. Robert Liguori.

    Russian translation: Java 8. Pocket Guide. Robert Liguori.

    An excellent reference guide that allows you to instantly find answers to questions about the Java standard library, lambda expressions, etc.


Online resources

  • Russian Java User Group. The archive contains a lot of reports on Java, Spring, and so on. The reports are mostly in Russian and are intended for experienced developers.
  • Awesome Java - supported list of the best libraries, frameworks, and applications in the Java world.
  • Useful java links is an alternative list of the best libraries, frameworks, and applications in the Java world. There is a Russian version.
  • Useful java links (video) - supported list of Russian-language videos from reports and conferences by category.
  • baeldung.com - This site contains a huge number of articles and lessons on developing an application in Spring. The lessons on the site go along with the code that you will find in Github at the end of each article. Also, the lessons present different solutions to the same problem, which undoubtedly makes this site useful for both beginners and experienced programmers.
  • vladmihalcea - This site is the official site of one of the developers of Hibernate - Vlad Mihalcea. On this site you will find many free lessons on Hibernate. As well as SQL and Spring
  • Thorben Janssen - expert on JPA and Hibernate. Leads text and video blog.
  • Thoughts about Java - On this resource, as on the resource above, you will find many articles and lessons related to Hibernate and JPA. The author of the site has many years of experience with Hibernate. More than a decade ago, he used one of the first releases of Hibernate to implement the persistence layer of enterprise applications.
 129
Author: Nofate, 2020-12-16 20:20:02