5 Good Books to Learn Java 8 Functional Programming

TL;DR: I have read many books while learning Java 8, but the best book I found was Java SE 8 for Really Impatient from Cay S. Horstmann. Why I recommend this book? three reasons, first clarity, second, size of the book is not overwhelming, and the third and most important I was able to connect to this book. I didn't find it boring or feeling sleepy as soon as I started reading, which in my opinion is a litmus test for any book.  It's been more than a year since Java 8 was launched in March 2014 and number of Java developers looking to learn Java 8 features like lambda expression, streams, and new date and time API is increasing exponentially. Since Java 8 is  significantly different from earlier Java version, thanks to the functional programming approach introduced in this release to take advantage of multicore CPU, programmers are finding it hard to grasp new concepts.

Questions like which books should I refer to start learning Java 8? or what is the best book to learn Java 8 is increasingly seen in various places on the internet. I had started learning Java 8 from last year itself, even before Java SE 8 was released and I have gone through many books in past one year.

When many of my readers asked me to suggest a good book to learn Java 8, I thought about writing this blog post and sharing my experience with some of the best Java 8 books. These books are equally useful for beginners and senior and experienced Java programmers looking to learn  functional programming in Java 8.

Java SE 8 for the Really Impatient by Cay S. Horstmann

If you are interested in learning about all new features of Java 8 and not just functional programming aspects e.g. lambda expression and streams then this is the best book. You will not only learn about functional programming features e.g. lambdas, streams, functional interfaces but also about new Date and Time API, JavaScript Nashorn engine and several other miscellaneous goodies including some of them from Java 7 e.g. improved way of reading and writing files, using the try-with-resource statement to automatically closing resources etc. Another reason I am recommending this book and why I found it so good is because it's written by Cay S. Horstmann. If you have read any book authored by Cay in past e.g. Core Java Volume 1 and 2 then you know why I am suggesting his books. His books have clarity and explain key concepts in fewer words with simple easy to understand but non-trivial examples. BTW, it's not necessary that you will also be able to connect to his book like I am, so it's better to try a couple of them before settling it for one.

Best book to learn Java 8

Java 8 in Action: Lambdas, Streams, and functional-style programming by Manning

Action series has already made their name in the programming world and Java 8 in Action also lives up to the expectation. Right from the beginning of why lambda expression was introduced in Java, they have made a great effort to teach new features of Java 8 in a simple and easy way. Java 8 in Action: Lambdas, Streams, and functional-style programming are a collective effort of Raoul-Gabriel Urma, Mario Fusco,  and Alan Mycroft. I got this book little late and till the time I got I already know a lot of things about Java 8, but one thing on which this book helped me is to understand the motivation behind key Java features e.g. lambdas, functional programming, streams etc. I highly recommend this book to experience Java developers who want to learn functional programming gin Java 8. It's not a generic book on functional programming techniques but still given you enough exposure on how to do them in Java 8.

Great book to learn Java8

Mastering Lambdas: Java Programming in a Multicore World by Maurice Naftalin

This is one book I was waiting to be published ever since I come to know about it and this is also one of the latest books I am reading on Java 8. Maurice Naftalin is not new to Java world, his last book about Java Generic and Collection is one of the best books on the topic and recommended by every Java programmer. He is also a pioneer about explaining the motivation behind Java 8 and various of its feature in his website  Maurice Naftalin's Lambda FAQ. All that experience has helped him to write another masterpiece. A couple of highlights of this book is why lambda expression was needed in today's world and how it will change Java programming. Code examples are also very well written and most importantly very well explained. You can get feel about it as soon as you start reading books and chapter about internal vs external iteration.  I highly recommend this book to any intermediate Java developer who wants to learn Java 8 and also wants to understand the why part of it.

good book to learn Java 8

Functional Programming in Java: Harnessing the Power Of Java 8 Lambda Expressions By  Venkat Subramaniam

I am a big fan of Venkat Subramaniam, I have seen a couple of his talks about Java 8 and Scala and I like the way he explains things. Venkat has clarity, conciseness and focused way of teaching with little humor, which is very important to teach a programming language like Java or Scala. I would especially recommend this book to Java beginners who wants to learn Java 8. Venkat has done a fine job on transitioning from the old imperative way of Java coding to new less error prone and more expressive functional style of Java coding. It's also fun to read and really enjoyable. The only thing which it lacks is depth and hence, I wouldn't recommend it to senior and experienced Java programmers who already know about functional programming, but for someone who is starting Java 8 from scratch, this is the best book to learn Java 8 for beginners.

Java8 books

Java 8 Lambdas: Pragmatic Functional Programming by Richard Warburton

I have also enjoyed reading this OReilly Java 8 Lambdas and Functional programming book  as someone who already knows a little bit about functional programming and new features of Java 8, but I found it does cover the new Java 8 APIs quite well. This book does a really nice job of how Java 8 lambda expression and stream API fit in naturally into the existing Java ecosystem.

Java 8 books with examples

That's all in this list of a couple of good books to learn Java 8. I have learned a lot from Java SE 8 for Really Impatient book and this is my first book to every Java developer to start with. Beginners can also take a look at Functional Programming in Java book by Venkat Subramaniam and for an experienced Java developers who want to learn functional programming in Java 8 couple of good books are Java 8 in Action and Mastering Lambdas: Java Programming in multicore world by Maurice Naftalin.

In general, I read, at least, two books just to get ideas from two different style of authors. I have always found reading multiple authors complements your reading and learning.  Good luck to your journey to Java 8 and let us know if you come across any other Java 8 book, which you think is really great and should be on this list.


  1. Mastering Lambda only cover lambdas and streams it doesn't cover all new Java 8 features e.g. new date time package, concurrency enhancement like CompletableFuture, Optional and other API enhancement. If you want to learn just these key concept then mastering lambda is great but if you want to learn Java 8 then I guess Cay S. Horstmann's Java SE 8 for really impatient and Raoul Urma's Java 8 in Action is great book.

  2. Great post.Looking forward to read those books.

  3. Great Overview !!

    Functional programming has finally found its way to java !!

  4. If you seriously want to become a good programmer , I suggest to take a look at these books to learn Algorithms. You should be good at algorithm and data structure to write good code. Once you done, that you can look at these books to improve coding skill .

  5. Hi Paul, I am David Mayer at www.java8certificationquestions.com
    I just wanted to announce that we just released our Java8 professional certification simulator.
    It is currently available for beta testing for 0.99 dollars.
    Take a look at at www.java8certificationquestions.com