Static이란?

2022. 12. 27. 01:59개발/용어

정적(Static)이란 뜻의 스태틱은 고정된 이라는 의미를 가지고 있다. Static이라는 키워드로 Static변수와 Static메소드를 만들 있다. 둘은 객체(인스턴스) 소속된 멤버가 아니라 클래스에 고정되어 있는 멤버이다.

 

그렇기 때문에 클래스를 로딩해서 메소드 영역에 적재할 클래스별로 관리가 된다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용이 가능하다.

 

Static 키워드를 통해 생성된 정적 멤버들은 Heap영역이 아닌 Static영역에 할당된다. 영역에 할당된 메모리는 모든 객체가 공유하여 어디서든 참조할 있는 장점이 있지만 Static영역에 있는 멤버들은 프로그램 종료시까지 메모리가 할당된 채로 존재하게 되기 때문에 Static 너무 남발하게 되면 만들고자 하는 시스템 성능에 악영향이 있다.

 

정적 필드의 사용 예시 코드이다.

 

예시를 출력 했을 number2.num은 1, number2.num2 0이라는 값이 나오게 된다. 이유는 정적 변수는 heap 영역이 아닌 static 영역에 할당되기 때문이다. 영역에 할당된 메모리는 모든 객체와 값을 공유하기 때문에 새로운 객체가 선언 되어도 기존의 값을 공유하게 된다.

 

 

Static 메소드를 사용한 예시이다. 정적 메소드는 클래스가 메모리에 올라갈 정적 메소드가 자동으로 형성이 된다. 그렇기 때문에 인스턴스를 생성하지 않아도 호출이 가능하다.

'개발 > 용어' 카테고리의 다른 글

상속이란?  (0) 2023.01.12
Argument란?  (0) 2023.01.10
상수(constant)란?  (0) 2022.12.23
인스턴스란(instance)?  (0) 2022.12.20
Tomcat(Apache Tomcat)  (0) 2022.10.31