Android 개념 정리 - 1 (객체, 클래스, 자바 컬렉션, 추상 클래스, 인터페이스, 자료구조)

2022. 1. 31. 20:25Android/깨알 개념 정리

객체와 클래스

객체

- 클래스에 정의한 것을 토대로 실제 메모리에 할당된 것

클래스

- 객체를 생성하기 위한 설계도 또는 틀

- 속성과 행위를 변수와 메소드로 정의한 것 

 

자바 컬렉션

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

 

Android 개념 정리 - 2 (Activity 4대 컴포넌트, 명시적 Intent & 암시적 Intent, ANR, ContentResolver & ContentProvid

Android 4대 컴포넌트 Activity - application의 화면 구성 컴포넌트 - 이동시 스택 구조로 쌓임 Service - application의 background로 실행되는 컴포넌트 - 화면이 없음, 네트워크 통신, DB 통신 BroadCast Rec..

soy0314.tistory.com