| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- Android
- 플로이드워셜
- appcompatacitivity
- recyclerview
- flutter
- 안드로이드
- appcompatactivity
- 프로세스
- 상태관리
- DiffUtil
- 내부 단편화
- AsyncListDiffer
- Kotlin
- 뷰홀더
- 운영체제
- http발전과정
- NestedScrollView
- Dispatchers
- AAC
- http 역사
- 절대 주소
- 리사이클러뷰풀
- apk 빌드 과정
- 리사이클러뷰
- 자이고트
- 물리 메모리
- viewModelScope
- 데코레이터 패턴
- 디자인 패턴
- GetX
- Today
- Total
목록Develop/Java (16)
hong's android
DeadLock 교착상태에 빠진것을 의미한다. 교착 상태란 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 아래 예시는 두개의 프로세스가 교착상태에 빠졌을때를 보여준다. 교착상태 성립 조건 상호배제 : 사용중인 자원을 다른 프로세스가 접근하지 못한다. 점유대기 : 자원을 가지고 있는데 다른 프로세스가 가지고 있는 자원을 가지고 있다. 비선점 : 자원을 함부로 뺐을 수 없다. 순환대기 : 서로가 서로의 자원을 기다리고 있는 상태이다. 자바에서 두 스레드들의 교착상태 public class Main { public static Object object1 = new Object(); public static Object obje..
String은 불변이다. String은 변하지 않는다. 계속 값을 더하게 되면 값이 변경되어서 변경되는 것이라고 착각할 수 있지만 내부적으로 기존 객체는 쓰레기가 되고 계속 새로운 객체를 만들어서 참조를 변경해 준다. Java string은 왜 불변일까? 1. 메모리를 절약할 수 있는 String Constant pool을 사용하기 위해 만약 변환될 수 있는 상태가 되면 Constant pool에 참조하고 있는 두 string이 있다고 했을 때 그중 하나의 값을 변경했는데 똑같은 참조를 하고 있는 상태가 된다. 2. thread safe 하기 위해 멀티 스레드가 공유 자원을 사용할 때 문제가 생긴다. 두 개의 스레드가 있다고 생각하자. 두 번째 스레드가 새로운 값을 할당하기 위해 새로운 객체를 생성한다...
Abstract class (추상화 클래스) 추상 : 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용. 자바에서의 추상 클래스 공통된 메소드, 필드를 묶어 하나의 클래스를 만드는 것을 의미한다. 추상화는 공통된것을 묶어놓는것이다. 코드를 다시 재사용하거나 공통된 특징들을 파악하기 편리하다. Interfacet (인터페이스) 인터페이스: 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다. (즉 인터페이스는 서로 소통을 하기위한 미리 만들어 놓은 규칙, 프로토콜이다.) 자바에서의 인터페이스 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형이다. 서..
Arraylist의 가변적이다. 어떻게 가변적이게 되었을까? Arraylist의 내부는 배열로 선언된 변수(elementData), 리스트를 몇 개 저장하고 있는지에 대한 데이터가 있다. 필요할 때마다 해당 배열의 크기를 늘리는 작업을 하게 된다. 그렇기 때문에 우리는 가변적으로 Arraylist에 데이터를 추가할 수 있다. *Jdk 버전에 따라 확장 방법의 차이가 있다. 또한 overflow에 대한 예외처리 여부에 따라 나뉠 수 있다. Jdk 6 /** * Increases the capacity of this ArrayList instance, if * necessary, to ensure that it can hold at least the number of elements * specified b..