안드로이드 개발자가 기술 면접을 보는 경우에 나올 수 있는 질문들을 학습 및 정리 하는 글입니다
이해한 정보들을 간략하게 정리 해놓은 글이기 때문에 더 깊게 알고 싶으신 분들은 따로 검색을 하셔서 찾아 보시는걸 추천 드립니다!
Q. 클래스(Class)와 객체(Object), 인스턴스(Instance)는 무엇인가?
A.
클래스 : 객체를 만들어내기 위한 설계도이며 연관되어 있는 변수와 메서드의 집합이다
객체 : 클래스의 선언된 모양 그대로 생성된 실체이다
인스턴스 : 객체를 실체화하여 메모리에 할당한 것을 인스턴스라고 한다
/* 클래스 */
public class Animal {
...
}
/* 객체와 인스턴스 */
public class Main {
public static void main(String[] args) {
Animal cat, dog; // '객체'
// 인스턴스화
cat = new Animal(); // cat은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
dog = new Animal(); // dog은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
}
}
A. Context란 어플리케이션에 대한 포괄적인 정보를 가지고 있는 객체이며 크게 Activity Context와 Application Context 2종류가 있다
Activity Context : Activity의 라이프 사이클을 따르고 Activity가 onDestory 될때 사라진다 Activity 범위 안에서 동작이 끝나는 작업을 하거나 Toast, Dialog 등 GUI 작업을 하는 경우에는 Activity Context를 사용한다
Application Context : Application의 라이프 사이클을 따르고 앱이 종료되는 시점에 사라진다 싱글톤 객체를 생성하는 경우 Application Context를 사용한다
만약 상황에 맞지 않게 사용하는 경우 GC (Garbage Collected)를 통한 메모리 정리가 되지 않아 메모리 릭이 발생하거나 예기치 않은 오류가 발생 할 수 있다