I like Bruce Eckel's books. I have a couple of them that I bought when I was just starting out with Java. I also have his
On Java 8 book which, to be perfectly honest, I haven't cracked open in a while now. I already had years of experience in other programming languages before I started Java, so I was fine reading them but I don't know how well-suited they are for rank beginners. The "On Java 8" book, for example, starts out with a discussion of objects and object-oriented programming concepts like
polymorphism, inheritance, and composition. That's kind of heavy even for experienced programmers and it's hardly a gentle introduction to programming for folks who have never programmed before.
And if you're a beginner, Eckel's older books will still be mostly relevant even if you're using a newer version of Java. As a beginner, it's going to be a while (maybe a few months to a couple of years) before you'll ever need to worry about some of the newer features of the language. Many if not most professional developers don't even find many opportunities to use features like lambdas and streams in their daily work.
If you really want to learn how to think like a programmer, take a look at
Think Like a Programmer by V. Anton Spraul. I think it's a wonderful book that can give you a foundational framework for approaching programming problems. There's one that uses C++ for the examples and I believe there's another version that uses Python, which might make it easier for you to translate over to Java. With the foundational knowledge you can get from Spraul's book, I think tackling Eckel's book will be less daunting.