[JAVA] StaticCS/CS2023. 6. 13. 22:25
Table of Contents
JAVA의 static
JAVA의 정적(Static)이란?
📌 [사전] 정적(Static) : 고정된
사전적 의미와는 다르게, 나는 JAVA의 Static을 "공유"의 개념으로 이해했음.
JAVA에서는 Static이라는 키워드를 사용하여 정적 멤버인 Static변수(정적필드)와 Static메서드(정적메서드)를 만들 수 있음.
- 정적 필드와 정적 메소드 : 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버
- 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리됨
- 즉, 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있음
- 즉, 인스턴스의 생성과 상관 없이 사용할 수 있는 변수이며, 객체 생성 없이 클래스를 통해 메서드를 직접 호출할 수 있는 메서드임
- Static 키워드를 통해 생성된 정적멤버들은 Heap영역이 아닌 클래스 영역의 Static영역에 할당됨
- 장점 : Static 영역에 할당된 메모리는 모든 객체가 공유하여 하나의 멤버를 어디서든지 참조할 수 있음
- 단점 : Static을 남발하면 시스템 성능에 악영향을 줄 수 있음
- Garbage Collector의 관리 영역 밖에 존재하기에 Static영역에 있는 멤버들은 프로그램의 종료시까지 메모리가 할당된 채로 존재하기 때문
- static메서드에서는 인스턴스 변수를 사용할 수 없음
- 정적 변수이므로 객체에서는 호출이 불가 → 따라서 static 변수에 접근하기 위한 메소드는 반드시 static 메서드가 되어야 함
- static메서드에서 : 유티리티성 메서드 작성 시 많이 사용
- static 메스드를 통해 싱글톤 패턴 생성 가능
참고자료
https://goldenrabbit.co.kr/2021/11/03/자바-코드와-메서드-스태틱-변수-등은-메모리의-어디/
'CS > CS' 카테고리의 다른 글
HTTP 란? (0) | 2024.01.01 |
---|---|
[CS, WEB, HTTP] RESTful API란?(API, REST API, RESTful API) (0) | 2023.06.13 |
[TIL] 3 way handshake, 4 way handshake (0) | 2023.06.08 |
[TIL] HTTP 멱등성 (0) | 2023.05.29 |
[TIL] HTTP 메서드 (1) | 2023.05.29 |
@Yanako :: Yana's coding story였는데요, 우당탕탕 개발일지가 맞는것같
야나의 코딩 일기장 :) #코딩블로그 #기술블로그 #코딩 #조금씩,꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!