Home
Java
private static final vs private final
devfoxstar
devfoxstar
April 29, 2023
1 min

Table Of Contents

01
private
02
static
03
final
04
private static final
05
private final
06
결론

private


private은 해당 클래스 안에서만 자원이 공유됩니다.
그래서 보안이나 안정성 혹은 클래스 안에서만 사용할 때 선언합니다.

static


static은 지정된 자원을 어플리케이션이 시작될 때, 바로 JVM Static 메모리에 저장합니다.
그래서 별도 객체 생성없이 바로 자원을 사용할 수 있습니다.

또한 static은 하나의 객체를 계속 사용해서, 메모리를 절약할 수 있습니다.

final


final은 초기화 이후에 재할당 할 수 없습니다.
그래서 지정된 값을 상수로 활용할 때 주로 사용됩니다.

물론 객체가 달라지면 다른 자원이 되기 때문에 값을 각각 할당할 수 있습니다.
이때는 static final 조합으로 지정하면 완벽한 상수가 됩니다.

private static final


지정된 자원은 클래스 안에서만 사용되고, 이미 메모리에 올라가서 바로 활용할 수 있습니다.
또한 재할당이 불가능합니다.

private static final int maxNum = 100;

위의 코드는 해당 클래스로 트래픽 유입이 계속되면, 이미 메모리에 올라간 자원만 사용합니다.
그래서 추가 메모리 할당이 없습니다.

private final


지정된 자원은 클래스 안에서만 사용되고, 재할당이 불가능합니다.
하지만 사용하려면 별도 객체 생성 과정을 거쳐야 합니다.

private final int maxNum = 100;

위의 코드는 해당 클래스로 유입이 계속되면, 계속해서 메모리에 자원을 할당합니다.
대신 변수에 재할당은 불가능합니다.

결론


private static finalprivate final의 가장 큰 차이는 추가 메모리 할당 여부입니다.

자주 사용하는 객체이고 활용도가 높다면 static으로 반영하는 게 좋습니다.
반대로 그렇지 않다면 static 할당은 메모리 낭비입니다.

참고로 Spring framework에서는 어플리케이션이 실행될 때, 기본적으로 하나의 객체 생성을 기준으로 합니다.


Tags

#Java#private#static#final

Related Posts

Java - Record class (불변 데이터 객체 만들기)
June 11, 2024
1 min
© 2024, All Rights Reserved.

Quick Links

About Me

Media