Polymorphism in Java 1. Overview All Object-Oriented Programming (OOP) languages are required to exhibit four basic characteristics: abstraction, encapsulation, inheritance, and polymorphism. In this article, we cover two core types of polymorphism: *static or compile-time polymorphism* and dynamic or runtime *polymorphism*. Static polymorphism is enforced at compile time while dynamic… Continue Reading java-polymorphism

Java Bitwise Operators 1. Overview Operators are used in the Java language to operate on data and variables. In this tutorial, we’ll explore Bitwise Operators and how they work in Java. 2. Bitwise Operators Bitwise operators work on binary digits or bits of input values. We can apply these to the integer types –  long,… Continue Reading java-bitwise-operators

Design Strategies for Decoupling Java Modules 1. Overview The Java Platform Module System (JPMS) provides stronger encapsulation, more reliability and better separation of concerns. But all these handy features come at a price. Since modularized applications are built upon a network of modules that depend on other modules to properly… Continue Reading java-modules-decoupling-design-strategies

Time Comparison of Arrays.sort(Object[]) and Arrays.sort(int[]) 1. Overview In this quick tutorial, we’ll compare the two Arrays.sort(Object[]) and Arrays.sort(int[]) sorting operations. First, we’ll describe each method separately. After that, we’ll write performance tests to measure their running times. 2. Arrays.sort(Object[]) Before we move ahead, it’s important to keep in mind that Arrays.sort() works… Continue Reading arrays-sortobject-vs-sortint