Java is a multi-threaded language. Since the beginning of the language it had first class support of multiple threads for our concurrency needs. After that with every release of Java the multi-thread model has been simpler and more accessible to users. From
Future in Java 5 to
ForkJoin framework etc in Java 8. Also powerful third-party frameworks like
RxJava evolved in the wild.
Though these abstractions make concurrency more available to the average user, one still should learn about the nuts and bolts of the language (and JVM). …
Java EE along with Spring has become the de-facto standard of enterprise-grade java applications, especially web apps. But this article does not talk about Java EE or Spring, but the layers of a standard application.
In this article, I am going to challenge how most people design their applications, from the
controller down to
dao layer. However, my primary target will be the service layer, as I often see this layer to be abused the most.
To make it more interesting and relatable I will be going with an example problem. First I will show you a traditional design and…
Java 11 was launched in September 2018 and along with came the new certification program. Gone are the days of OCA/OCP certifications, there was now only Java SE 11 Developer or Java 11 Application Programmer. Two exams 1Z0–815 and 1Z0–816 to be taken (in any order) for the title. In September 2020 Oracle merged the exams and created 1Z0–819.
I prepared for the 1Z0–815 exam but many people will have a similar experience if you are taking the latest and greatest certification programs. …
If you have worked on an application that works with external services like Database, MQ, Web APIs, etc, or even interacted with the file system on a larger scale, you are probably aware of how IO, especially over the network, slows operations down.
There is nothing wrong with IO. But IO-bound operations are generally drastically slower than CPU bound operations. We measure CPU operations in microseconds while IO operations are generally measured in milliseconds.
This slowness is not noticeable on a small scale when a handful of IO calls are made. But in an enterprise-grade application might need to process…