기타

class vs object
class가 그 자체로 선언되면 object이고, 그 object를 실체화시키면 instance가 되어 메모리에 할당된다.
public class Animal{ // class
   //.......
}
int main(){
    Animal cat;  //object
    cat = new Animal();  //instance
}


overloading vs overriding
overloading: 두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우이다.
overriding: 상위 클래스의 메서드와 이름과 용례가 같은 함수를 하위 클래스에 재정의 한 것이다.
개발자의 실수를 방지하기 위해 @Override라는 annotation을 쓴다.

Garbage Collector
Java에서는 GC라는 알고리즘을 통해 메모리가 관리되기 때문에 개발자가 메모리를 처리하기 위한 로직을 만들 필요가 없다.

안드로이드 액티비티 생애주기
onCreate() - onStart() - onResume() - onPause() - onStop() - onDestroy()
onCreate: 처음 실행할 때만 호출된다. 변수 초기화 및 클래스의 인스턴스화를 한다. 위젯에 대한 id를 참조하는 등의 작업을 한다.
onStart: 액티비티가 포그라운드로 나오기 위해 수행되는 단계이다. BroadcastReceiver를 등록하는 등의 작업을 한다.
onResume: 현재 실행중인 액티비티에 포커스가 맞춰져 있는 동안 onResume의 상태를 유지한다. 포커스가 다른 곳으로 이동되면 onResume의 상태가 꺼지고 종료되지 않은 상태에서 다시 포커스가 돌아오면 onPause를 거쳐 onResume이 된다.
onPause: 액티비티의 포커스가 다른 곳으로 이동했을 때 호출된다. 액티비티가 백그라운드에 있다는 뜻이며 개발자가 상황에 따라 메모리나 배터리 등의 자원을 해제할 수 있다.
onStop: onPause 다음 단계로 액티비티가 사용자에게 보이지 않거나 활동이 일어나지 않는 상태를 말한다. 앱이 종료되지 않고 액티비티가 재개되는 경우 onRestart를 거쳐 onStart가 실행된다.
onDestroy: 앱이 종료된다. 종료 직전 모든 리소스를 해제한다.



----------------------------------------------------------------
Reference
https://mailmail.tistory.com/29


댓글

이 블로그의 인기 게시물

논문 정리 - MapReduce: Simplified Data Processing on Large Clusters

논문 정리 - The Google File System

kazoo: Using zookeeper api with python