Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java] static(정적) 변수와 메모리 관리 본문
Java에서 static(정적) 변수는 클래스에 속하는 변수로서, 모든 인스턴스가 공유하는 공통된 값이며 프로그램 실행 중에 한 번만 메모리에 할당된다. 이러한 특성은 다음과 같은 메모리 관리 측면에서 중요한 역할을 한다.
- 메모리 할당:
- static 변수는 프로그램이 시작될 때 클래스가 로딩되면서 메모리에 할당된다. 클래스 내부에 선언되어 있으므로 클래스의 인스턴스화와는 무관하게 사용할 수 있다.
- 공유된 값:
- static 변수는 모든 인스턴스가 공유하는 값으로서, 한 번의 수정으로 모든 인스턴스에 영향을 미친다. 이를 통해 데이터의 일관성을 유지할 수 있다.
- 메모리 누수 방지:
- static 변수는 프로그램이 종료될 때까지 메모리에 남아있기 때문에, 필요 이상으로 메모리를 소비할 수 있다. 이를 방지하기 위해 static 변수에는 약한 참조(Weak Reference)를 사용하여 메모리 누수를 최소화해야 한다.
아래는 static 변수의 예제 코드이다.
public class Counter {
private static int count = 0;
public static void increment() {
count++;
}
public static int getCount() {
return count;
}
}
위의 코드에서 count 변수는 static으로 선언되어 있으며, 모든 Counter 클래스의 인스턴스가 이 변수를 공유한다.
static 변수는 적절하게 활용함으로써 메모리 관리와 데이터 공유에 효율적으로 사용될 수 있다.
'프로그래밍' 카테고리의 다른 글
[Java] 가비지 컬렉션(Garbage Collection) (0) | 2024.02.27 |
---|---|
[Java] 람다 표현식(Lambda Expression) (0) | 2024.02.27 |
[JPA] 낙관적 락(Optimistic Lock)과 비관적 락(Pessimistic Lock) (0) | 2024.02.27 |
[JS/JavaScript] 뒤로가기 버튼에서 발생하는 캐시: BF캐시 (BFCache)에 대해 알아보기 (0) | 2024.02.27 |
[JS/JavaScript] 따옴표와 백틱: 문자열 표기의 다양성 (0) | 2024.02.27 |