programming language/Java

static / final / static final이란?

공대키메라 2022. 4. 3. 13:15

어찌보면 쌩 기초이지만 생각나는대로 기초를 다시 다잡고 가려고 한다. 

 

static 혹은 final도 굉장히 많이 보는 친구들이지만(너같은 친구 난 없어) 정말 간단히 알아보려 한다.

 

1. Static (정적)이란?

 

정적 : 고정된이란 의미

 

이 키워드를 사용하여 static 변수, static 메소드를 만들 수 있다.

 

정적 필드와 정적 메소드는 객체에 소속된 멤버가 아니라 클래스에 고정된 멤버로, 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재시 클래스별로 관리된다. 따라서, 클래스 로딩이 끝나는 즉시 사용이 가능하다. 

 

필드나 메소드를 객체마다 다르게 가져야 한다면 인스턴스로 생성하면 되고

공용 데이터에 해당하거나 인스턴스 필드를 포함하지 않는 메소드를 선언하고자 할 때 이용한다.

 

출처

https://coding-factory.tistory.com/524

https://wikidocs.net/228

 

사실 어떻게 사용하는지 너~무 흔하다. 보통 유틸성 코드를 생성하는데 많이 사용한다. 

 

2. final이란?

 

final의 의미는 최종적이란 뜻을 가지고 있습니다. final 필드는 초기값이 저장되면 최종적인 값이 되어 프로그램 실행 도중에 수정을 할 수 없습니다.

 

출처

https://coding-factory.tistory.com/525

 

잘 정리된 사이트가 있는데 참고를 해보니 final의 경우 필드, 객체, 클래스, 메서드에 선언이 가능하다. 

 

어디까지 원래 설계자의 의도대로, 수정하지 말하야 할 것을 선택할 때 final 키워드를 적절히 사용하면 될 것 같다.

 

 

3. 그래서, static final이란?

 

static final 하면....

모든 영역에서 인스턴스 선언 없이 사용하도록 만들 건데, 수정은 안되는 최종적인 것입니다

즉, 모든 영역에서 고정된 값으로 사용하는 상수 라고 말하면 될 것 같다.

 

출처 : https://gobae.tistory.com/3

 


이번 글은 성의가 좀 없어 보이는데

 

그도 그럴게 이미 내가 궁금해 한 선대 개발자분들께서 잘 정리해놓은 내용이 너무 많다.

 

잘 읽고 활용해서 나는 이해하겠다. 고맙습니다 형님들... ㅠㅠ