Java Wrapper 클래스 를 정리해 보자
안드로이드 프로그래밍을 하다보면,Wrapper Class를 사용하게 되는 경우가 많이 있습니다.HashMap이나 Generic, 혹은 ArrayList를 사용할 때 인데요. 오늘은 Java의 WrapperClass에 대해서 정리해보겠습니다. 1. Wrapper Class Java 개발을 할 때, 무심코 사용하던 Wrapper Class란 말은,사실은 기본형(Primitive) 타입을 Wrap해서 쓰는, Primitive Wrapper Class를 지칭한다고 볼 수 있습니다. 실제로 Wrapper Class는, Primitive Wrapper Class뿐만이 아니라, 어떤 Class를 Wrap(포장)해서 사용하는 Class를 가르키는 것 입니다.하지만, 이 글에서도, Wrapper Class를,자바의 Pr..
2017. 3. 7.
Java Map인 HashMap, TreeMap, LinkedHashMap 에 대해서 정리해 보자.
안드로이드 프로그래밍을 하면서 Map을 사용하게 되는 경우가 종종 있는데요.Java 에서 제공해주는 Map에는 HashMap, TreeMap, LinkedHashMap 이 있는데요.이들에 대해서 한번 정리해보겠습니다. 1. HashMap HashMap의 소스코드는 길어서 다 볼수는 없지만, 간단한 주석이 들어있는 앞부분을 참조해보겠습니다.눈이 띄는 부분들을 정리해보면 다음과 같네요.인자로, null값이 허용되는 key,value값을 로 허용한다.해쉬맵의 순서는 정해져있지 않으므로, 정해진 순서대로 iterate을 하고 싶다면, LinkedHashMap을 사용할 것여러 워커 쓰레드를 사용하는 경우, 자동으로 동기화되지 않으므로, synchronized를 해야할 필요가 있다.Serializable을 사용하므..
2017. 2. 12.
Android의 Realm 데이터베이스 파일 은 특별한 곳에 있지 않다
안드로이드 Realm을 이용한 앱을 만들때, 데이터가 이미 들어있는 DB파일을 직접 앱에 넣고자 할 때가 있습니다. CSV파일을 넣고, 앱에서 코드로 읽어들일 수도 있겠지만, 데이터가 커질수록, 그렇게 효율적인 방법은 아닌것 같구요. 역시나, 파일의 위치를 찾아서 직접 replace해주는 것이 가장 좋고 편할 것 같은데요. 사용하는,시나리오를 생각해보면, Mac의 RealmBrowser에서 만든 데이터를 default.realm으로 export시켜서, 안드로이드에 넣어주는 것이네요. 1. Realm DB파일 위치 찾기 Realm의 경우 환경변수로 DB이름을 주지 않았다면,생성되는 파일명은 default.realm 입니다. 그런데, 문제는 이 파일이 어디에 있는냐는 거죠. 루팅한 폰이 아니고서는 앱안의 데..
2017. 1. 10.
Java IO에서 InputStream, OutputStream, Reader, Writer
Java에서 IO(Input/Output)라는 것을 하게 되면 InputStream, OutputStream, Reader, Writer 를 사용하게 되는데요. 오늘은 이들에 대해서 기본적인 것들을 정리해보려고 합니다. 1. Stream or Reader, Writer? 자바 IO는 입출력에 관해, 크게 두가지로 나눌 수 있습니다. 하나는, 바이트 단위로 입출력을 하는 Stream이구요, 여기엔 InputStream과 OutputStream이 있습니다. 다른 하나는, 2바이트인 문자단위 입출력을 하는 Reader, Writer입니다. InputStream과 Reader가 입력을, OutputStream과 Writer가 출력을 담당하므로, 두 개씩 묶어서 보도록 하겠습니다. 2. InputStream, R..
2017. 1. 7.