Today i was lucky to pass the exam with 82%.
Together with the OCA exam it took me about 4 months of full-day training.
(Minus 2 weeks of holiday and several weekends of social activity and skiing...)
I have several years professional experience in java (and a lot more in other programming languages).
For the OCA i did prepare with the the Boyarsky/Selikoff book only and got 75%.
The questions in the test were a bit harder than the book, so i was quite nervous at the test.
For OCP i used the book and Enthuware tests, because i had fear of overlearning the book-tests, which was the case.
Nevertheless Enthuware seems to cover some topics, which were not on the actual exam.
So if you get a question in Enthuware, which is not covered in the book, you maybe don't have to learn this for the exam (without guarantee, of course).
After finishing all Enthware-Exams i decided to make the test.
The day before the Test i found out, that in the meantime i forgot a lot of pitfalls of the Selikoff book-tests so i was not sure if i was well prepared.
Fortunately (but without warranty) many of the OCP Test questions were easier than the book-tests, quite the contrary to my OCA experience.
The Enthuware-tests were a lot harder than the real exam.
I really loved the detailled explanations in the Enthuware Test Exams.
These were a great learning aid.
Eclipse (as i am used to work with a GUI with all its features. For learning purposes it maybe would have been better to use an editor, but i really could not resist it)
Javadoc (integrated in Eclipse).
Oracle tutorials on concurrency.
Book "Functional Programming in Java".
I hope the following information about the exam is not illegal in this forum:
As many other people said:
You have to do tons of Lambdas/Streams examples because more than half of the exam questions contain these new features.
You have to be quick in analyzing Lambdas/Streams.
There are some typical things on the exam, like in the book and Enthuware tests:
If you can spot these quickly, you can save a lot of time on the exam.
A stream is used a second time.
Wrong or missing catch clause.
Stream without terminal operation.
Stream with more than on terminal operation.
Wrong lambda types used in stream operations.
Casting errors in stream operations.
Wrong lambdas in other method invocations.
Final methods being tried to override.
Closed DB-Connection/Statement - statement is reused after this.
DB-connection is never closed.
"Forgotten" synchronized-blocks on methods.
missing comparable/comparator in sorted Collections.
There were a lot of questions about sorting!
"Forgotten" assignements in immutable types.
"Forgotten" serializable / comparable etc... interfaces.
Wrong written or "forgotten" equals / hashcode in combination with sorting in Streams / Collections.
Many wrong castings, especially in combination with generics, you have to really read the code carefully.
You have to remember all information regarding casting, autoboxing, polymorphism, overriding, hiding from the OCA exam!
The exam also tries to trick you in mixing old I/O with NIO, old Date with new java.time API, and resultset Date/Time methods.
Many thanks to Jeanne Boyarsky / Scott Selikoff for the books and the Enthuware-Team for the mock exams.
I wish all the readers good luck for the exam.....