OCP 17 Exam passed!
I finally passed the OCP 17 exam! 🎉 Link to badge It took me about 1.5 years from start to finish, with plenty of shorter and longer breaks along the way. 😉 Looking back, I think I could have sp...
I finally passed the OCP 17 exam! 🎉 Link to badge It took me about 1.5 years from start to finish, with plenty of shorter and longer breaks along the way. 😉 Looking back, I think I could have sp...
🧠 1. Think Like the Compiler, Not Like a Developer As developers, we naturally focus on business logic. The compiler doesn’t. It doesn’t care that your algorithm is correct if: a variab...
Last year I spent a lot of time reading the OCP study guide. I don’t want to leave it unfinished, so my goal for 2026 is to finally pass the exam. These are my reasons. 🧠 I want to finish what I ...
Java provides JDBC interfaces, while database libraries provides implementations - except implementation of DriverManager, which is used to create connection (Q.1) if autocommit is enabled (defau...
Streams byte streams are called *InputStream/*OutputStream (e.g. FileInputStream, BufferedOutputStream), where character streams are *Reader/*Writer (e.g. FileReader, BufferedWriter) ...
Executors be aware whether Executors.newSingleThreadExecutor is used, because running on single thread automatically synchronizes executions, so result will be always consistent (Q.22) ...
Note: Java Platform Module System was introduced in JDK 9 in project Jigsaw. In Java 25 modules would be available through imports like regular classes. Running and packaging simple module Folde...
Let’s consider the following example: var list = List.of(1); var first1 = list.stream().findFirst(); var first2 = list.getFirst(); if (Objects.equals(first1, first2)) { // compiles, just warning i...
try-with-resources can be used only with classes that implement AutoCloseable (also java.io.Closeable which extends AutoCloseable) two or more resources can be defined in one try...
Streams fundamentals “Streams are evaluated lazily, which means intermediate operations are not executed until a terminal operation is invoked.” var ints = new ArrayList<Integer>(); ...