JAVA
static, final, static final
청춘고양이
2024. 6. 28. 15:58
반응형
1. static 키워드
static 키워드는 클래스 멤버를 지정할 때 사용됩니다. 클래스가 로드될 때 메모리에 한 번 할당되며, 모든 인스턴스가 공유하는 변수나 메서드에 사용됩니다. 이는 다음과 같은 특성을 가집니다:
- 클래스 변수: 클래스의 모든 인스턴스들이 공유하는 변수로, 클래스가 로드될 때 초기화됩니다.
- 스태틱 메서드: 인스턴스 생성 없이도 호출할 수 있는 메서드입니다.
public class MyClass {
public static int staticVariable = 10;
public static void staticMethod() {
System.out.println("This is a static method.");
}
}
2. final 키워드
final 키워드는 변수, 메서드, 클래스에 적용될 수 있습니다. 이 키워드를 사용하면 해당 요소가 초기화 이후 변경될 수 없습니다.
- 변수: 변수가 상수가 되어 초기화 이후 값이 변경되지 않습니다.
- 메서드: 메서드가 오버라이드될 수 없으며, 하위 클래스에서 변경할 수 없습니다.
- 클래스: 클래스가 상속될 수 없으며, final 클래스의 메서드 역시 오버라이드될 수 없습니다.
public class MyConstants {
public static final double PI = 3.14159;
public static final String APP_NAME = "MyApp";
public static final int MAX_COUNT;
static {
MAX_COUNT = 100;
}
}
3. static final 키워드
static final 키워드는 상수를 정의할 때 사용됩니다. 이는 한 번 할당된 후 변경되지 않는 값으로, 주로 상수를 정의하는 데 활용됩니다. 클래스가 로드될 때 초기화되며, 해당 클래스의 모든 인스턴스들이 공유합니다.
public class Configuration {
public static final String DATABASE_URL = "jdbc:mysql://localhost:3306/mydatabase";
public static final int MAX_CONNECTIONS = 10;
public static final String VERSION;
static {
VERSION = "1.0.0";
}
}
4. static final 사용 사례
- 상수 정의: 프로그램 내에서 변경되지 않는 값을 정의할 때 사용됩니다.
- 설정 값: 설정 파일 경로, 데이터베이스 URL 등 프로그램 구성 요소에 대한 상수를 정의할 때 유용합니다.
- 플래그 값: 특정 조건을 나타내는 상수를 정의할 때 활용됩니다.
5. 주의할 점
- 명명 규칙: static final 상수는 대문자와 언더스코어(_)를 사용하여 명명해야 합니다. 예를 들어 MAX_CONNECTIONS, DATABASE_URL 등이 좋은 예시입니다.
- 멀티스레드 환경: static final 상수는 변경되지 않는 값이므로 스레드 안전성을 고려할 필요가 없습니다.
반응형