It seems you are all alone in this – but you don't have to be. Here's a list of things you can start doing right away – literally within few seconds after reading this.
1) Paul is too modest (as always) so I'll do it for him: go to Enthuware's site, get their 1Z0-808 Mock Exam Bundle and start asking questions on their forum (after all, your post mentions that you "can't even understand the explanations in most cases"). I can personally vouch for the quality of Paul Anilprem's explanations.
2) Take a look at my old post here on CoreRanch (https://coderanch.com/t/668003/certification/Finally-passed-OCAJP
) – and you'll see why your words stroke a chord with me. Hopefully, you'll find some inspiration from what I had to say more than two years ago.
3) Get a buddy to prep together for the exam – and make them promise never let go of your hair as soon as they notice you are slacking.
4) Start *teaching* what you already know to a twelve year old. Do it for free, and you'll find plenty of victims to choose from. I'm dead serious: just go and TEACH someone. The responsibility alone can rewire the way you look at things.
5) When you think you do understand something, write half a dozen code snippets on this particular topic as if it's you who creates exam questions, then give these questions to your pupils and see what happens.
6) After six weeks of this set the exam date. And let this date be final. As final as the proverbial nail into this coffin of perpetual self-doubt and indecisiveness. I used to be in your shoes, so I do know. This struggle of yours is purely psychological and "self-inflicted" so to speak. You need no more books. Just code. Force yourself to write code on the clock; produce a couple of code snippets every hour to demonstrate this or that rule.
7) Finally, for the second time: start asking questions. It's amazing how often an attempt to formulate your problem more clearly suddenly gives you the answer you are looking for (google "the rubber duck debugging").