개발 무지렁이

[Java] Modifier: static 본문

Backend/자바

[Java] Modifier: static

Gaejirang-e 2023. 1. 1. 14:48

static


(1) 객체 생성 여부와 관계없이 메모리를 미리 할당받는 애들
(2) 같은 클래스들이 공유하는 영역, 공유변수(<-> 인스턴스 변수)

🚩 위치
- class 앞에 올 수 없다 (단, inner class에는 가능)
- 전역변수 앞에 사용가능 (class이름.변수이름으로 호출, ex) System.in, System.out)
- method 앞에 사용가능 (class이름.변수이름으로 호출, 단, this 키워드 사용x, 객체 생성 없이 호출하니까)


⚠️ static method는 static method, 변수만 호출 가능하다.

🕋 class [본사]
🕋🧑‍🔧 static 필드/메서드 [본사직원]

🏬 객체 [지사]
🏬🧑‍🔧 객체 메서드 [지사직원]  

- static(본사직원)은 static(본사직원)끼리만 소통 가능
  (본사직원은 지사를 특정할 수 없다, 한개가 아니기 때문에)

- 객체 메서드는(지사직원)은 static에 접근 가능
  (지사직원은 본사직원을 특정할 수 있다. 한개이기 때문에)
  (단, 다른 지사직원과는 접근 불가능, 한개가 아니기 때문에)

⚠️ static method는 메모리 어딘가의 static영역에 모여있다

static 블럭

static initialize, main보다 먼저 호출
(환경세팅, 사전 초기화작업, DB연결, 데이터 로딩, 최초 딱 한번만 실행)
Comments