Static class variables
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…