Hey everyone! This article will give you an in-depth insight into generics in Java and its advantages and usage. Generics is a vast topic but, we will mostly focus on its application to Java Collections in this article.

Life before Generics.

Java generic is an essential concept to provide type safety in collections and to solve type casting issues. Suppose you want to store a bunch of names that are in the form of String. In Java, you can use Arrays or Collections for this purpose. Arrays are type-safe which means there’s a guarantee that a String array will contain…


This whole pandemic thing has made our lives more stressful than ever in so many ways. We are forced to be confined to our houses and we no longer can go out with our friends and family without worrying about safety concerns related to health. On top of that, we have to work from home for our bread and butter and we all know it’s stressful as days turn into weeks and weeks eventually turn into months. Truly speaking many of us feel less productive and more tired than working from the office due to so many reasons. …


Hey everyone! Sometimes you may be a regular user of “this” and “super” keywords. Maybe, you’re wondering what they are used for. This article will give you a deeper insight about these keywords, their application and also a bit of comparison between them. Without further ado, Let’s dive in!

To begin with, there are two keywords in java called super and this. Also there are two method calls named super() and this(). I will elaborate first on the keywords as it will broaden your understanding about this topic.

super keyword in java is used to access member variables and methods…


Hey everyone! This article will give you a sound understanding about OOPs concept in Java. But even if you’re from another programming background such as C++ or Python, you can utilize this article to gain a thorough understanding about OOP principles. Examples provided in this blog are Java language based. Nevertheless the explanations can be applied to any object oriented programming language as these basic pillars are language independent, even though the implementations can be different from language to language. Before diving into OOPs concepts, I will give you a small insight about different ways of writing code including OOP.


I’m gonna start out with a famous quote:

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler

To be honest, whatever I might say, I can’t stress this enough. Writing a working code is clearly not enough nowadays. Code quality plays a vital role in making your project stand out from the rest. Following up with best practices in the industry and maintaining a standard in your code can help you and your teammates, both current and future, when working collaboratively. Let’s dig into some coding standards that…


Git branching strategies are used very often when dealing with distributed version control system. Let’s take a sneak peek as to why branching is essential when developing a software collaboratively. Version control systems like Git are intended to provide more comfort to software developers and QA engineers by allowing them to compare files, differentiate between them and merge any changes between the files if necessary. To make this all happen branching is very much needed. Here is why,

  1. Git branches are inexpensive to create and maintain.
  2. Making feature branches makes reviewing history simpler.
  3. Can add more information like developer name…

Navoda Nilakshi

Software Engineering Undergraduate | IIT | Sri Lanka

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store