2022. 1. 31. 20:25ㆍAndroid/깨알 개념 정리
객체와 클래스
객체
- 클래스에 정의한 것을 토대로 실제 메모리에 할당된 것
클래스
- 객체를 생성하기 위한 설계도 또는 틀
- 속성과 행위를 변수와 메소드로 정의한 것
자바 컬렉션
Set
- 순서를 유지하지 않고 중복이 허용되지 않는 데이터 집합
- HashSet, TreeSet
List
- 순서를 유지하고 중복이 허용되는 데이터 집합
- ArrayList : 검색에 용이하며 삽입, 삭제에는 시간이 오래 걸린다.
- LinkedList : 삽입, 삭제에는 용이하며 검색에는 시간이 오래 걸린다.
- Vector
Map
- 키, 값의 쌍으로 이뤄진 데이터 집합
- 순서가 유지되지 않으며 키의 중복은 허용하지 않고, 값의 중복은 허용함
- Hashtable, HashMap, TreeMap
추상 클래스와 인터페이스
추상클래스 | 인터페이스 |
추상 메소드를 포함한 클래스 혹은 추상 메소드가 없지만 abstract로 선언한 클래스로 상속을 통해 완성되는 설계도 | 추상 메소드만 포함한 구현체 없는 설계도 |
일반 메소드도 포함 가능 | 추상 메소드만 포함 가능 |
상수 필드, 변수 필드 포함 가능 | 상수 필드만 포함 가능 |
다중 상속 불가능 | 다중 상속 가능 |
모든 클래스에 공통된 메소드가 있는 경우 추상 클래스 사용 | |
추상 메소드에 대해 오버라이딩 필요 |
추상 메소드
- 선언부는 있는데 구현부가 없는 메소드를 의미.
자료구조
ArrayList
- 상당히 빠르고 크기를 마음대로 조절할 수 있는 배열
- 단방향 포인터 구조로 자료에 대한 순차적인 접근에 강점이 있음
- 삽입, 삭제에 용이하지 않음
LinkedList
- data, pointer를 가지는 각 노드가 연결되어 있는 형태의 자료구조.
- 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 빠른 성능을 보장
- 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 사용
- 검색에 용이하지 않음
Stack
- LIFO 데이터 삽입(push), 삭제(pop)가 단방향
- 웹 브라우저 뒤로 가기(가장 나중에 열린 페이지를 먼저 보여줌)
- 역순 문자열 출력 (문자열의 마지막부터 출력) 등
Queue
- FIFO, 데이터 삽입, 삭제가 각각 다른 방향에서 진행됨
- 프로세스의 스케줄링 (먼저 들어온 작업에 대한 처리)
- BFS (너비 우선 탐색) 등
https://soy0314.tistory.com/64