본문 바로가기
[Java] What is "CopyOnWriteArrayList" [Java] What is "CopyOnWriteArrayList" http://developer.android.com/reference/java/util/concurrent/CopyOnWriteArrayList.html - Thread-safe 한 random access list. - Read 는 block 이 걸리지 않는다. addAll, clear 와 같은 aggregate operation 은 atomic 하다. - Iterator 를 사용할 때는 copy 본을 사용하기 때문에 ConcurrentModificationException 이 절대 발생하지 않는다. 대신 Iterator 가 최근 state 를 항상 반영하는 것은 아니다. - Iterator 가 copy 본이기 때문에 iterator .. 2017. 2. 22.
[android] ListVIew 의 transcriptMode.. ( 추가된 item 으로 focus 이동 ) [android] ListVIew 의 transcriptMode.. ( 추가된 item 으로 focus 이동 ) 이놈 때문에 한참을 해맸다... android:transcriptMode 는 새로운 item 이 add 되었을 때 focus 이동을 할지를 결정하는 속성이다. disabled, normal, alwaysScroll 이렇게 3개의 값이 들어갈 수 있다. disabled기본 값으로 새로운 아이템 추가에 무대응이다. normaldata set이 change 되었을 때 ( 새로운 녀석이 추가되면 ) + 마지막 아이템을 보고 있었다면, 새로 추가된 마지막 아이템쪽으로 focus 를 이동시킨다. alwaysScrolldata set 이 change 되었을 때 현재 보고 있는 item 이 어떤 녀석인지 상.. 2016. 12. 22.
[Java] Unbounded Wildcards [Java] Unbounded Wildcards 참조 : http://docs.oracle.com/javase/tutorial/java/generics/unboundedWildcards.html - Unbounded Wildcard 는 List 와 같이 type 을 ? 로 사용하는 경우를 이야기한다. - Unbounded Wildcard 는 다음 상황에서 유용하게 쓰인다. 1. Object class 를 넣는 것과 같은 용도인 경우. 2. Collection 을 parameter 로 받으면서 List.size, List.clear 등과 같이 type 에 dependency 가 없는 Collection 자체의 함수들만 호출하는 경우. - List 는 List 의 subtype 이다. - List 는 Lis.. 2016. 11. 23.
[android] Localize 에 대한 이야기. [android] Localize 에 대한 이야기. 참조 : http://blog.danlew.net/2014/09/08/what-should-i-localize/?utm_source=Android+Weekly&utm_campaign=c1f6bc0d27-Android_Weekly_119&utm_medium=email&utm_term=0_4eb677ad19-c1f6bc0d27-337262377 - xml 에 string 을 작성할 때 string res 를 사용하는 것이 localize 에 대한 기본이다. 보통 Lint 도 이 방법을 추천하지만, lint 가 잡아내지 못하는 항목들도 많다. - Lint 가 잡아내는 xml 항목들 android:text android:hint android:contentDe.. 2016. 11. 10.
[java] readResolve, writeReplace 뭐 하는 녀석일까? [java] readResolve, writeReplace 뭐 하는 녀석일까? 참조 : http://www.javalobby.org/java/forums/t17491.html singleton 의 경우 serialization 을 하면서 singleton 유지가 안 될 수 있다. Serialization 은 readResolve() 라는 private method 를 통해서 instantiation 을 진행한다. 이 녀석은 serialization 의 결과로 return 되는 object 를 이야기한다. public final class MySingleton {private static final MySingleton INSTANCE = new MySingleton();private MySingleton.. 2016. 11. 3.
[Java] writeObject 와 readObject 는 무엇인가? [Java] writeObject 와 readObject 는 무엇인가? 참조 : http://www.javablogging.com/what-are-writeobject-and-readobject-customizing-the-serialization-process/ - serialize 하고 싶은 객체에 Serializable interface 만 implements 해주면 serialize 가 가능하다. -ObjectOutputStream 을 이용하여 stream 형태로 만들어 file 에 쓰거나 전송할 수 있다. - transient 나 static 으로 마크되지 않은 필드들은 모두 serialized 된다. - 기본적인 serialization 에 추가적으로 어떤 조치를 취하고 싶다면 아래와 같이 w.. 2016. 10. 25.
[Java] Generic explicit type parameter 이야기 [Java] Generic explicit type parameter 이야기 참조 : http://shanhe.me/2011/09/11/explicit-type-parameters-for-generic-methods 참조 : http://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html - 자바 7, 8 로 version up 이 되면서 조금 더 강화된 compiler 로 type inference 도 강화되어 explicit type parameter 를 지정할 일이 거의 없다. -public static Map toHashMap(Map map) {return new HashMap(null == map ? Collections.em.. 2016. 10. 18.
WeakHashMap 에 대해 제대로 이해하자. WeakHashMap 에 대해 제대로 이해하자. - WeakHashMap 은 일반적인 HashMap 과 동일하지만 key 가 weak reference 된 형태이다. - WeakHashMap 을 가장 잘 이해하는 용어는 이렇다. "더 이상 일반적인 방법인 key 로 value 를 retrive 할 수 없을 때 key/value pair 를 제거한다." 따라서 string 은 WeakHashMap 의 key 로 적합하지 못하다. string 은 JVM 에 의해 다른 곳에 store 되어 항상 strong reference 로 남을 것이다. 다시 말하자면 string 을 key 로 사용할 것이라면 WeakHashMap 을 쓸 이유가 없다. - Primitive Boxing object 들도 key 로 사용하.. 2016. 10. 13.
[android] Fragment 와 함께라면 Configuration Change 가 무섭지 않아. [android] Fragment 와 함께라면 Configuration Change 가 무섭지 않아. -애석하게도 대부분의 개발자들이 manifest 에 configChanges 속성을 통해 orientation 값만 설정해주면 모든게 해결되는 줄 안다. 하지만 그렇지 않다. Configuration Change 는 여러 경우에 발생된다. 기본적으로 configChanges 에 들어가는 값들의 상황이 그렇고, 언어가 변경되거나, dock 에 연결되거나, font 크기가 바뀌거나 등의 조건으로 destroy-recreate 되곤 한다. 또한 리소스, 메모리 관리 측면에서 Activity 가 destroy 되고 create 되도록 하는 것이 좋다. - 예전부터 개발을 해온 사람이라면 Activity 에 on.. 2016. 10. 12.
반응형