아직까지 마음이 아프다.
오늘도 아침에 일어나서 내가 보고 싶다고 하는 아이에게 나는 정말... ...
한 없이 미안해진다.
* up-call
- low level(저수준)에서 high level(고수준)로 호출이 일어나는 것.
>> 뭐~ 어셈에서 C를? C에서 Java를? 이건가? 단순히 Language에 대한 것이 아닐듯... Architecture적으로 이해하자.
* java의 inner class ( enclosing class : inner class를 포함하는 class)
- static inner class는 enclosing class의 static member와 static function만 참조가 가능한다. 일반 member는 안됨.
- public inner class(member class)는 enclosing class의 member처럼 동작한다. public inner class 내부에는 static 변수나 static function은 정의될 수 없다. 다만, 상수는 가능하다.
- local class는 function 내부에 선언되는 class다. enclosing class의 모든 member의 접근이 가능하다. local class는 자신을 포함하는 메소드의 지역 변수나 매개 변수 중에 final만 참조할 수 있다.
- Anonymous Class는 interface나 class를 상속해서 1회성 object를 만드는 class이다.
* java thread에서 wait, notify, notifyall을 synchronized block(또는 function)안에서 불려야 한다.
- wait 이 호출되면 release lock 이라고 하니까.. synchronized lock을 놓는 것이겠지.
- wait, notify, notifyall 함수를 synchronized block내에서 호출해야 하는 이유.. 아래에.. -,.-
>>Wait's whole purpose is "release the lock, and then stop executing until somebody notifes you." You can't release a lock you don't have, and the way you obtain a lock is by entering a sync block
(wait의 전체적인 목적은 "락을 풀고, 다른 thread(somebody를 이렇게.. thread 일테니)가 notify(or notifyall)를 호출 해 줄 때까지 실행을 중지한다"는 것이다. 너는 가지지 않은 lock을 풀 수 없다. 그리고, 너가 lock을 얻는 방법은 sync block안으로 들어감으로써이다.)
* android context를 찾다 보니 아래 내용이 있네. 나중에 도움이 되겠지.
- Activity Context 에 관한 참조를 오랫동안 유지하지 말아라. (해당 참조는 반드시 Activity 의 생명주기와 일치 해야 한다.)
- Activity Context 대신, Application Context 를 사용할 것을 고려하라.
- 만일 Activity 내부 클래스의 생명 주기를 잘 관리하는 경우가 아니라면, Activity 를 참조하고 있는 내부 클래스를 사용하지 말아라. 대신 Static 내부 클래스를 사용하고 해당 클래스가 Activity 와 WeakReference 를 갖도록 해라. 구체적인 구현 방식은 ViewRoot 를 참고 해라.
- 가비지 콜렉터는 메모리 누수 문제가 일어나지 않도록 보장하지 않는다.
댓글 없음:
댓글 쓰기