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 |