Static class variables

Vassilios Karakoidas
2 min readAug 13, 2024

The static keyword held a very special place in my mind as programmer. The concept spans across languages, like Java, C#, Javascript and even Python (!).

The Singleton pattern

My first actual useful usage of the static class attribute in Java was when back in the day, I was implementing the Singleton design pattern. A typical implementation looks like this:

public class ClassicSingleton {
private static ClassicSingleton defaultInstance;

private ClassicSingleton() {
// do the math here
}

public static ClassicSingleton getInstance() {
if (ClassicSingleton.defaultInstance == null) {
ClassicSingleton.defaultInstance = new ClassicSingleton();
}

return ClassicSingleton.defaultInstance;
}
}

This by-the-book implementation declares a static variable on the class ClassicSingleton and initializes it, when the getInstance() method is called.

A more Java-esoteric implementation would be the following:

public class EsotericSingleton {
private static EsotericSingleton defaultInstance;

static {
defaultInstance = new EsotericSingleton();
}

private EsotericSingleton() {
// do the math here
}

public static EsotericSingleton getInstance() {
return defaultInstance…

--

--

Vassilios Karakoidas

Software Engineer, Software Architect, Gamer and Researcher. Opinions are my own.