프로그래밍 538

[Java] WeakReference 와 SoftReference 의 차이점.

안녕하세요 돼지왕 왕돼지입니다 오늘은 Weak Reference 와 Soft Reference 에 대해 알아보았습니다. WeakReference. Object 를 참조하는 형태 세 가지 중의 하나입니다. GC 가 발생할 때 어떤 object 가 weakly-reachable 이라면 다음과 같은 일이 발생합니다. 1. Weakly-reachable object "를" 참조하는 모든 reference 를 모은다. 2. Weakly-reachable object "가" 참조하는 모든 reference 를 모은다. ( 참조형태는 strong 이든 weak 이든 상관없다. ) 3. 1, 2 를 통해 모은 모든 reference 를 한번에 다 해제한다. 4. reference 가 해제된 object 들은 final..

[java] WeakReference 와 SoftReference

각각에 개념부터. WeakReference 말그대로, '약한' 참조 이다. '약한' 참조는 해당 객체에 대한 소멸을 막지 않는다. 즉, 어떤 객체에 대한 참조가 WeakReference 밖에 남아있지 않다면 그 객체는 gc(Garbage Collection) 의 대상이 된다. 펼치기 - J2SE 5.0 api 문서의 설명 원문 Weak reference objects, which do not prevent their referents from being made finalizable, finalized, and then reclaimed. Weak references are most often used to implement canonicalizing mappings. Suppose that the ga..

안드로이드 - HashMap,HashTable,LinkedHashMap,ConcurrentHashMap

음...요새 자주 접하게 되는 Data Storage이다. 보통 형태로 put하고 get(key)를 통해 value를 가져온다. value에는 Bitmap, Class, Drawable....등등등을 넣을 수 있다. 현재까지 내가 파악한 MAP Interface에는 HashMap, HashTable, LinkedHashMap, ConcurrentHashMap 이다. 요요 세가지에 대해서 자세히 살펴보자^^ 1. HashMap VS HashTable 비동기화 VS 동기화 비동기화가 성능이 좋고, 동기화는 성능이 안좋다. 중요한 것은 HashMap 을 Multi Thread 환경에서 사용하면 안된다. 여러개의 Thread가 동시에 HashMap 을 건드려서 key, value 를 넣게 되면 문제가 발생 할 ..

안드로이드 - Android Handler 와 Timer(TimerTask) 를 활용한 Intro 화면 구성

안드로이드 화면구성을 할 때, 가장 먼저 구현해야하는 화면이 바로 Intro 화면 일 것 입니다. Intro 화면이란 현재 실행되는 어플의 첫 화면이 보여지는 화면을 말하는데요, 말 그대로 해당 어플의 성격과 컨셉을 대변해 주는 아주 중요한 화면 입니다. 이렇게 Intro 화면을 보여주고, 실제 Main 화면으로 이동할 경우, 보통의 경우 Handler에 postDelayed(Runnable r , long delayMillis) 란 메서드를 활용 하는데요. Handler를 사용한 방법 말고도 Timer와 TimerTask를 이용하여 화면을 이동 할 수 가 있습니다. 자 그럼 우선, Handler를 이용한 화면 전환 부터 확인해 볼까요? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15..

안드로이드 - Bitmap OutOfMemoryError 해결책

메모리 부족. 안드로이드에서 OutOfMemoryError라 발생하는 가장 많은 경우는 비트맵 로딩때문이다. 안드로이드는 어플리케이션 프로세스별 메모리가 제한되어 있다.(16M, 24M, 32M 등) 문제는 위의 메모리 에러가 DDMS에서 가장 쉽게 확인할 수 있는 메모리 값인 VM Heap 사이즈와는 크게 상관없이 발생한다는 것이다. Bitmap을 로딩할 경우 VM 내의 힙메모리를 사용하는 게 아니라 VM 밖의 Native 힙메모리 영역을 사용한다고 한다. 그리고 BitmapFactory의 decode함수들은 메모리 Leak이 존재한다고 알려져 있다. 해결 방안 :: 1. 가용 메모리의 확인 - 아래 API들을 활용해서 Native Heap 값을 확인할 수 있다. Debug.getNativeHeapSi..

안드로이드 XmlPullParser 사용 예제

: 권한 필요 ( - androidmanifest 파일에 추가 필요 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 ///////////////////외부url연결시/////////////////// String data = editLoc.getText().toString(); //한글을 인코딩해서 인터넷으로 내보내기 data = URLEncoder.encode(data, "UTF-8"); String requ..

PHP - flock 함수

flock 함수는 파일을 쓰거나 읽을 때, 또는 파일 잠금 해제 등 유닉스나 윈도우에서 작동합니다. 파일 작성중 다른 사용자의 사용의 접근을 차단하여 파일의 깨지는 문제를 예방할 수 있습니다. bool flock ( resource $handle , int $operation [, int &$wouldblock ] ) flock 함수는 다음의 상수를 사용할 수 있습니다. LOCK_SH LOCK_EX LOCK_UN 파일 읽기일 때 잠금 파일 쓰기일 때 잠금 파일 잠금 해제 사용방법은 다음과 같습니다.

프로그래밍/PHP 2013.11.29

PHP - mysql_num_rows 의미

mysql_num_rows (PHP 3, PHP 4 )mysql_num_rows -- 결과로부터 열 개수를 반환 설명 int mysql_num_rows (int result) mysql_num_rows() 함수는 결과셋으로부터 열의 개수를 반환한다. 이 함수는 SELECT절에서 반환된 결과셋만 사용이 가능하다. INSERT, UPDATE, DELETE로부터 열의 개수를 얻으려면 mysql_affected_rows()를 사용하면 된다. 출처 : http://www.hamslab.com/~man2/php4/function.mysql-num-rows.html

프로그래밍/PHP 2013.11.29

HTML - 셀렉트박스(select)

직업선택 학생 회사원 기타 태그와 태그로 구성됩니다. 직업선택 학생 회사원 기타 태그에서 사용하는 value 속성은 텍스트 필드에서의 value 속성과는 조금 틀립니다. 텍스트 필드에서 value 속성에 값을 입력하면 기본값이 입력되지만 태그의 경우는 이 이 선택된 경우 전송되는 값을 지정하는 것입니다. 위의 예제에서 학생을 선택된채로 폼을 전송했다면 job 필드의 value값은 의 value값인 "학생"으로 지정됩니다. 기본값으로 회사원이 선택되게 할려면 selected 속성을 사용해야 합니다. 직업선택 학생 회사원 기타 아래와 같이 회사원이 선택된채로 출력됩니다. 직업선택 학생 회사원 기타 은 HTML 4 버전에서 새로 만들어진 태그로 옵션에 카테고리를 만들 수 있습니다. 대부분의 웹브라우저에서 지원..

HTML - target blank, self, parent, top의 의미

보통 새로운 웹페이지를 여는 명령어에서 쓰입니다. 속성명이 target 이고 인수가 _blank, _self, _parent, _top 4개 중 하나가 들어가요. 예) html : 링크 as : navigateToURL ( new URLRequest( 'http://flashfriend.tistory.com'), '_blank' ) _blank 새 윈도우 창을 열어서, 웹페이지를 엽니다. 기존의 창은 그대로 남겨져 있스빈다. _self 현재 윈도우창에 그대로, 링크된 웹페이지를 엽니다. ( 현재의 프레임 ) _parent 현재 프레임의 부모 프레임에서 새웹페이지가 열립니다. 만약 어떤 창 A에서 창 ..