It seems like you are not clearly understanding the concept of object-oriented design patterns. There are no patterns that are specific for the Java programming language. Object-oriented design patterns can be implemented with any object-based programming language. They are design ideas that concern a variety of common design problems and/or requirements. By themselves, they are not solutions and they can all be implemented in many different ways. The authors of any software design book are only sharing their opinions. And these opinions typically are bound by the author's personal experience and perspective. The opinions are neither correct or incorrect.
There is no "single", "best" book. To truly get a good understanding of object-oriented design patterns, the student must (1) read, study and understand many books written by many authors, and (2) apply a variety of patterns multiple times in the context of "something significant" over a period of time.
A good understanding should come when you have actually implemented the patterns at least three or four times for different applications. Note, this is not the same activity as reading three or four web pages about design patterns.
An expert-level understanding will only come when you have done the above for many, many years, e.g. 10 or more.
Good luck on your deserted island