만약에 클래스 속에
final double PI_1=3.14;
public static final double PI_2 = 3.14
를 만들었음
근데 만약 객체를 new 해서 200개를 만들었다치면은
Pl_1은 상수인데 200개가 생기는거고
Pl_2는 클래스 멤버로 여전히 1개만 있는상황임?
만약이게 맞으면 메모리 낭비를 줄이기위해서,상수는 무조건 static을 해줘야하는거임?
만약에 클래스 속에
final double PI_1=3.14;
public static final double PI_2 = 3.14
를 만들었음
근데 만약 객체를 new 해서 200개를 만들었다치면은
Pl_1은 상수인데 200개가 생기는거고
Pl_2는 클래스 멤버로 여전히 1개만 있는상황임?
만약이게 맞으면 메모리 낭비를 줄이기위해서,상수는 무조건 static을 해줘야하는거임?
상수는 무조건 static final ㅇㅇ
근데 궁금한게 왜 컴파일러 차원에서 안막는거임? static을 안하는 상수는?
외부 참조 필요 없고 immutable 한 상수 객체 같은 경우 메모리를 많이 잡아먹는다면 메모리 최적화를 위해서 static 으로 안 쓸수도 있지
위는 상수선언이 아님. 그냥 변경핮 못하는 immutable객체를 위한 선언일뿐 - dc App
아 내가 static의 개념을 잘못알고잇었네