I am not able to get the logic behind Object sizing in Java. I have four classes:
 public class TD1 {
    Integer i1 = new Integer(0);
    Integer i2 = new Integer(0);
    Integer i3 = new Integer(0);
    Integer i4 = new Integer(0);
    Integer i5 = new Integer(0);
    Integer i6 = new Integer(0);
    Integer i7 = new Integer(0);
    Integer i8 = new Integer(0);
    Integer i9 = new Integer(0);
}
public class TD2 {
}
public class TD3 {
    int i;
}
public class TD4 {
    Integer i = new Integer(0);
}
And their sizes:
Object type: TD1, size: 48 bytes
Object type: TD2, size: 8 bytes
Object type: TD3, size: 16 bytes
Object type: TD4, size: 16 bytes
Somebody please help me to get the logic behind this.
Reference: https://www.baeldung.com/java-size-of-object
