There is no doubt that the best book to learn Java for beginners is indeed "Head First Java, 2nd Edition". It's interesting, informative and yet easy to read, which is what a beginner wants. Only drawback of this book is that there is no 3rd Edition available. Java has moved a long way since 2nd edition of this book was released. Yes, the core of the Java programming language is not changed much and information given in this book is still relevant and sufficient for anyone who wants to learn Java programming, but an up to date book comprising changes introduced in Java 7 and Java 8 would have been much appreciated. I was hoping for Head First Java 3rd Edition when Java 8 was launched last year, but no update yet. The changes introduced in Java 8 does demand a new edition of book, but that is for advanced level. For a beginner its better to learn basics of Java before diving into lambda expression and other stuff.
Head first Java will give you head start in Java programming by first explaining What is Java, What is Java's competitive advantage over other popular programming language e.g. C, C++ or Python and What is the best way to learn Java. Once you start reading this book, you will learn very quickly.