필자는 여태까지 멤버변수에 있는 상수(Constant)를 그냥 상수라서 final과 static을 같이 사용했었는데, 프로그램을 작성하면서 왜 같이 사용하는지 의문점이 들었다.
그래서 왜 같이 사용하는지 생각해보았는데, 바로 메모리 낭비를 하지 않기위해서 같이 사용하는 것이었다.
public class FieldInit {
static final int CONST_VALUE = 10;
final int value = 10;
}
바로 이럴 때 사용하는 것이 static final을 같이 사용하는 것이다.
MY_VALUE는 static영역에 존재하고, final 키워드를 사용했기 때문에 값이 변하지 않게된다. 즉 static영역은 단 하나만 존재하기 때문에 MY_VALUE변수는 JVM에서 하나만 존재하기 때문에 메모리를 보다 더 효율적으로 사용할 수 있게 되었다.