728x90
static 선언
- 메모리에 한번 할당되어 프로그램이 종료될 때 해제
- static 키워드를 붙이면 자바는 메모리 할당을 딱 한번만 하게 되어서 메모리 사용에 이점
- Heap영역이 아닌 static영역에 할당되어 GC 관리 영역 밖이라 자주 사용하면 퍼포먼스에 영향을 줌
- static으로 설정하면 같은 곳의 메모리 주소만 바라보기 때문에 static 변수의 값을 공유하게 됨
static 변수
- 클래스 변수, 객체를 생성하지 않고 접근 가능 함
static 메소드
- 객체의 생성 없이 호출이 가능함
예시
public class Book {
/* static 변수 */
public static String BOOK_NAME = "STATIC BOOK";
public String book = "BOOK";
/* static 메소드 */
/* static 메소드에는 static 변수만 선언됨 */
public static void callStaticBook() {
System.out.println(BOOK_NAME);
}
public void callBook() {
System.out.println(book);
}
}
public class Main {
public static void main(String[] args) {
/* class에서 바로 호출 */
System.out.println(Book.BOOK_NAME);
Book.callStaticBook();
/* 일반적인 instance 선언후 메소드 호출 */
new Book().callBook();
}
}
보통 static 변수는, 상수로 많이 사용하고, static 메소드 같은 경우 util로 사용하는 클래스에서 사용
'JAVA' 카테고리의 다른 글
[JAVA] 상태패턴 (0) | 2021.05.21 |
---|---|
[JAVA] Builder 패턴 (0) | 2021.05.16 |
[JAVA] 상속 / 컴포지션 (0) | 2021.05.15 |
[JAVA] 초기화 순서 (0) | 2021.05.12 |
[JAVA] Lombok @Delegate (0) | 2021.04.18 |