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

Add, if there is something to add to the general answer.


This list is part of the Community Supported Programming Learning Resources on Programming .

Blocked by member PashaPash ♦ 2 Jan '16 at 11:47 .

The answers to this question are given by joint efforts: if you think that something can be improved, just make corrections in response! You cannot add new answers here .

Read more about blocked messages here .

    1 answer 1

    Core java

    Beginners:

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

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

      As is usually the case in the Head First books, you will have fun in pictures and will teach you the basics of Java programming. For experienced programmers, the book can cause a smirk, but for a really entry-level it is quite good.

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

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

    • 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’s books are written in a rather dry language and dump API’s documentation and kilometers of listings with a full code of examples to the reader. Reading them consistently can be quite hard, but books will become an excellent desktop reference book and collection of recipes.

    • Java ™ Platform, Standard Edition 7 API Specification .

      Online documentation of the standard JAVA SE libraries.

    Online courses, tutorials

    Average level:

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

      Russian translation: Java philosophy . Bruce Ekkel.

      Classic folio javistov. For comfortable reading, basic knowledge of the language is required, since The book does not set as its task to teach writing in Java from scratch, but to teach writing idiomatically.

    • Java 8: The Complete Reference . Herbert Schildt.

      Russian translation: Java 8. Complete guide . Herbert Shieldt.

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

      Russian translation: Java. Effective programming . Joshua Bloch.

      Joshua Bloch, in a sense, continues the idea of ​​the book Thinking in Java : going even further into the language and standard libraries, he learns 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 allows those who have already “learned the language” to test themselves. The book contains 95 problems with a trick: obvious at first glance code fragments, concealing a tricky bug. Some of the considered examples may seem far-fetched and non-life, 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.

      Detailed tutorial on writing multithreaded Java code. Each topic is viewed from different angles with several examples, so that by the end of the chapter there will be a full understanding of the subject being judged. 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 optimizing java Software, tuning JVM and garbage collector, benchmarking and profiling.

    • Core Java for the Impatient . Cay Horstmann.

      A book for the impatient, as the name suggests. Allows you to immerse yourself in 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 doesn’t like C++ much, sometimes jokes about it, something like this: String[] badWords = {"sex", "drugs", "C++"}; this makes reading not so boring).

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

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

      It is a continuation of the book Core Java for the Impatient , but here all attention is paid to the innovations of the eighth version of the language, covers many aspects, be it lambda expressions, work with the Stream API or multithreading. After each chapter, there are also 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

      Excellent book from the publisher O'Reilly, in a fun way will teach you the basic design patterns in the Java language.

    • Java 8 Lambdas . Richard Warburton.

      Russian translation: Lambda expressions in Java 8. Richard Warburton

      Usually in Java textbooks, little or no attention is paid to the topic of using lambdas and streams. Warburton's textbook fills this flaw.

    Expert Level:


    Java ee

    • Java ™ Servlet Specification 3.1

      Exhaustive official documentation about the work and life cycle of servlets.

    • Beginning Java EE 7 . Antonio Gonsalves.

      Russian translation: Learning Java EE 7 . Anthony Gonsalves

    • Java EE 7. Basics of 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. Described in detail, but quite difficult and much, so for the first training I recommend to start 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 current tutorials on Spring that are on the Internet, as they are constantly updated by the community. For a more detailed study - see the official documentation .

    • Spring in action . Craig Walls

      Despite the fact that the book describes the already middle-aged 3rd version of Spring, the book is worth reading, as it introduces the reader to the framework very simply and in detail.

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

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


    Hibernate

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

      Despite the fact that the JPA standard is not mentioned in the title of the book, most of the book is dedicated to its implementation in Hibernate.


    Swing

    • SWING: Efficient user interfaces . Ivan Portyankin.

    • Swing A Beginner's Guide . Schildt H.

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

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


    Javafx

    • JavaFX 2.0 Development of RIA applications . Timur Mashnin.

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

    • Learn JavaFX 8 . Kishori Sharan.

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


    Directories

    • Java 8 Pocket Guide . Robert Liguori.

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

      An excellent reference, with which you can instantly find answers to questions on the standard Java library, lambda expressions, etc.


    Online resources

    • Russian Java User Group . The archive is a lot of reports on Java, Spring and so on. The reports are mainly in Russian, designed for experienced developers.
    • Awesome Java - supported list of the best libraries, frameworks and applications in the world of Java.
    • Useful java links - an alternative list of the best libraries, frameworks and applications in the world of Java. There is a Russian version .
    • Useful java links (video) - supported list of Russian-language videos from reports and conferences by categories.
    • I think it will be useful: link - Vugar Suleymanov