Notice
Recent Posts
Recent Comments
Link
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 책리뷰
- PR
- github
- rxjava
- ai
- 일본어문법
- n3문법
- webflux
- androidstudio
- errorhandling
- pullrequest
- jlpt
- 인공지능
- 일본어기초
- Kotlin
- 안드로이드
- GIT
- 진짜학습지후기
- posting
- 책추천
- coroutine
- CustomTab
- 진짜학습지
- suspend
- KotlinInAction
- Android
- 진짜일본어
- 코틀린
- 학습지
- blog
Archives
코딩하는 개굴이
Static 에 대하여 본문
반응형
Static
- static은 프로그램이 시작하고 종료될 때까지 살아있는 jvm의 static 메모리에 데이터를 올리는 것으로, 초기화 과정이 필요없어 static이 선언된 변수, 메서드에 바로 접근이 가능
- static을 사용한다는 의미는, 해당 객체를 공유하겠다는 의미로 어디서 쓰이든 항상 동일한 객체이다.
- 따라서, static이 선언된 변수의 값을 바꿔버리면, 다른 곳에서 해당 변수의 값을 참조하는 부분 또한 영향을 받는다.
- ConcurrentModificationException (access) 오류, 연산 오류 등이 발생할 수 있다.
- 멀티스레드의 경우, synchronize 하여 다음 스레드가 해당 코드에 동시 진입하지 않고 먼저 실행된 스레드가 끝날 때 까지 기다렸다가 실행되도록 하여 보완할 수 있다.
Final
- final은 불변하도록 변수를 생성하는 것이 아니라, 변수가 최초 초기화 이후 재할당 되지 않도록 만드는 것이다.
private static final
- private static final을 선언한 변수는 재할당 하지 못하며, 메모리에 한번 올라가면 같은 값을 클래스 내부 전체에서 공유한다.
- private final 을 선언한 변수는 메서드별로 호출할 때마다 새로이 값이 할당되므로(인스턴스화), 위와는 다르다.
static이 안 붇는 변수 : 인스턴스 변수 = 속성 = 멤버변수로,생성된 수 만큼 메모리 공간을 차지한다.
관련 디자인 패턴
- Singleton : 인스턴스 자체를 static 한 방법으로 사용하고자 하는 경우 해당 디자인 패턴으로 개발
참고
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] Textview의 drawable 속성 (0) | 2021.03.06 |
---|---|
안드로이드 앱 난독화 (0) | 2021.02.21 |
Singleton 패턴에 대하여 (0) | 2021.02.21 |
LayoutInflater란 (0) | 2021.02.21 |
jadx-gui 맥에서 설치하기 (0) | 2021.02.21 |
Comments