본문 바로가기
[Java] String 에 대한 이야기. 자바, String 에 대한 이야기. Java 를 사용하다 보면 간혹 memory 관리 측면에서 String str = "gamza"; String str2 = "gamza"; 사실 String 도 object 인데, 이런식으로 literal 을 계속 사용하면 메모리 문제가 생기지 않을까? 아니다. Java 의 String literal 의 경우 같은 literal 은 같은 메모리 주소를 가르키게 된다.즉 똑같은 "gamza" 라는 string 은 천만개의 String 에 assign 해도 같은 메모리 주소를 가르키기 떄문에Heap 의 용량이 늘지는 않고, 변수 자체가 차지하는 메모리는 스택쪽만 늘어나게 된다. 만약 다음과 같이 사용하면, 다른 주소에 할당해서 다른 메모리 주소를 가르키게 된다. Stri.. 2013. 8. 22.
[android] Caused by: java.lang.NullPointerException at android.app.AlertDialog.resolveDialogTheme 안드로이드, Caused by : java.lang.NullPointerException at android.app.AlertDialog.resolveDialogTheme Caused by: java.lang.NullPointerExceptionat android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:148)at android.app.AlertDialog.(AlertDialog.java:104)at android.app.ProgressDialog.(ProgressDialog.java:77) 해당 이슈는 말 그대로 null pointer exception 인데 무엇이 null 이냐?AlertDialog 를 만들 때 전달하는 Context 혹은 Acti.. 2013. 8. 20.
[Java] HashMap 과 HashTable 의 차이는? 자바, HashMap 과 HashTable 의 차이는? Map Interface 를 구현한 녀석 중 대표적인 녀석들은 HashMap 과 HashTable 이다.이 둘의 관계는 ArrayList 와 Vector 의 관계와 비슷하다. ArrayList 와 Vector 의 관계가 궁금하면 여기를 클릭. HashMap 은 thread-not-safe 하고, HashTable 은 thread-safe 하다.즉 multi-thread 환경이 아닌 경우에는 HashMap 을 사용하는 것이 성능상 이롭다. ArrayList, HashMap, hashmap hashtable, hashmap thread-not-safe, Hashtable, hashtable thread-safe, java hashmap, java has.. 2013. 8. 20.
[android] screen size 와 px, dp, config 에 대한 핵심 정리 안드로이드, screen size 와 px, dp, config 에 대한 핵심 정리 mdpi 320px X 480 px hdpi - mdpi 의 1.5배480px X 800 px 320dp X 533dp xhdpi - mdpi 의 2배720px X 1280 px360dp X 640dp Programmatically Best Resource 채택하기 Configuration config = getResources().getConfiguration();if (config.smallestScreenWidthDp >= 600)setContentView(R.layout.main_activity_tablet);elsesetContentView(R.layout.main_activity); Configuration 에.. 2013. 8. 20.
[android] bitmap 전환 fade in & fade out sample code 안드로이드, bitmap 전환 fade in & fade out sample code 뭐 완벽하며 부드러운 구현은 아니지만, 그래도 image 가 그냥 "확" 바뀌는 어색함을 막기 위해서 fade in, fade out 을 어떻게 이용할 수 있을까 idea 를 제시한다. public class MainActivity extends Activity { private int[] resIds = new int[]{ R.drawable.black, R.drawable.blue };private int index = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentVie.. 2013. 8. 19.
[Java] Thread 의 상태에 대한 이야기 자바, Thread 의 상태에 대한 이야기 Thread 는 진행상태에 따라 상태값을 갖는다. 상태의 종류는 Thread.State 에 정의되어 있는데,BLOCKED, NEW, RUNNABLE, TERMINATED, TIMED_WAITING, WAITING 의 형태가 있다. thread.getState() 로 상태정보를 가져올 수 있다. Thread thread = new Thread(); 이 상태는 NEW thread.start(); 이 상태는 RUNNABLE thread scheduler 에 의해 실행이 시작되면 상태는 Running 상태 ( 상수로 구분되어 정의되어 있지는 않다. ) thread 안에서 wait( 1000 ); 이 상태는 TIMED_WAITING wait(); 이 상태는 WAITING.. 2013. 8. 19.
[android] AsyncTask 의 cancel 에 대한 이야기. 변태야 ㅠ 안드로이드, AsyncTask 의 cancel 에 대한 이야기. 변태야 ㅠ onPostExecute() 는 cancel 여부에 관계없이 불릴 줄 알았는데, 안드로이드 버전에 따라서 구현이 다르다.Reference 를 보면 2.3.7 까지는 doInBackground 가 끝난 후 UI Thread 에서 불린다. 결과값은 doInBackground 의 return 값이며, cancel 이 되었을 때 혹은 exception이 발생하면 null 이 return 된다. 2.3.7 Version Source Code 를 보려면 여기를 클릭. 그러나 4.0.1 의 구현에서는.. doInBackground 가 끝난 후 UI Thread 에서 불린다. 결과값은 doInBackground 의 return 값이다. 만약 t.. 2013. 8. 18.
[Java] 왜 InputStream 의 read() 는 byte 가 아닌 int 를 반환하는가? 자바, 왜 InputStream 의 read() 는 byte 가 아닌 int 를 반환하는가? byte 는 8bit 로 0~255 까지 표현할 수 있다. 그런데 InputStream 의 read() 를 통해 더 읽어들일 byte 가 없을 경우에는 -1 을 return 하여 더 이상 읽을 값이 없다는 것을 알려줘야 한다. 이 경우 byte 형으로 return 받을 경우 -1 을 포함시킬 수가 없다. 그래서 int 형태를 사용하게 되었다. 1, byte, InputStream, inputstream int return read, inputstream read, inputstream read byte, inputstream read byte return, inputstream read int, iNT, Java.. 2013. 8. 18.
[android] 뷰가 그려지는 과정 ( 부모뷰 vs 자식뷰 ) 안드로이드, 뷰가 그려지는 과정( 부모뷰 vs 자식뷰 ) 부모뷰는 자식뷰가 ViewGroup 에 추가될 때 넘겨 받은 LayoutParams 값을 기반으로 자식 View 에게 다음 3가지 방식 중 한 가지 방식을 통해 필요한 영역 크기를 물어본다. UNSPECIFIED. 자식에게 원하는 값을 마음껏 적어 내라는 것. wrap_content 의 경우 부모뷰는 자식뷰가 얼마나 많은 공간이 필요한지 알 수 없다. 따라서 자식뷰에게 꼭 물어봐야 한다. EXACTLY 자식에게 정확히 정해진 값의 공간만을 사용하라고 명령을 내리는 것. 20dp 와 같이 특정값이 정해져 있는 경우가 이 경우. AT_MOST 최대 상한선을 정해준 상태에서 자식 뷰에게 해당선을 넘지 않는 범위에서 영역을 결정하도록 한다. 이는 부모뷰가.. 2013. 8. 17.
반응형