✔️ non-static vs static
non-static 멤버(인스턴스 멤버)란?
- 해당 멤버는 객체마다 별도로 존재하므로 인스턴스 멤버라고 부름
- 객체 생성 시 멤버가 생성되기 되므로 객체 생성 후에 멤버를 사용할 수 있음
- 객체가 사라지면 해당 멤버가 사라지게 됨
- 멤버는 객체 내에 각각 독립된 공간을 유지하므로 공유되지 않음
static 멤버(클래스 멤버)란?
- 해당 멤버는 클래스 당 하나만 생성되며 객체 내부가 아닌 별도의 공간에 생성되므로 클래스 멤버라고 부름
- 객체가 생성되기 전 클래스 로딩 시 멤버가 생성되므로 객체를 생성하지 않고도 사용할 수 있음
- 객체가 사라져도 해당 멤버가 사라지지 않고 프로그램이 종료될 때 사라짐
- 멤버는 동일한 클래스의 모든 객체들에 의해 공유됨
즉, 하나의 클래스로부터 생성된 여러 객체가 공유함
'Tech Interview > Language' 카테고리의 다른 글
[Language] 인터페이스 vs 추상 클래스 (0) | 2024.03.19 |
---|---|
[Language] final/finally/finalize (0) | 2024.03.18 |
[Language] Java 접근 제어자 (0) | 2024.03.18 |
[Language] 문자열 클래스 (0) | 2024.03.12 |
[Language] 클래스 & 객체 & 인스턴스 (0) | 2024.03.12 |