본문 바로가기

나의 플랫폼

[ JAVA ] try catch finally 사용 시 문제점. try{// .. 예외가 발생할 가능성이 있는 구문!}catch(Exception e){// .. 예외 발생시 처리 구문!}finally{// .. 꼭 실행해야하는 구문!} 전 코딩을 할 때 위와 같이 이해 하고 코딩을 하고 있습니다.하지만 여기서 몇가지 생각해야 할 게 있더라구요!1. try 안에 return.2. catch 안에 return.3. finally 안에 return. 한번 생각해보세요....... 결론.1. try 안에 return문 => return은 정상 동작으로 종료가 되었다는 의미이므로 finally 구문을 거쳐 정상 종료2. catch 안에 return 문 => catch 안에 return문은.. 거의 쓸일이 없을듯... 똑같이 finally 구문을 거쳐 정상 종료.3. fina.. 더보기
Socket Interface Name으로 IP 주소 가져오기. 3g,wifi등 인터넷에 interface Name이 있습니다.이 name을 이용하여 IP를 가져오는 방법이 있네요.system 입출력 함수인 ioctl을 이용하여 가져오는 방법입니다. ...#include #include #include #include ...char *getIfToIP(char *ifName){ int fd; struct ifreq ifr; fd = socket(AF_INET, SOCK_DGRAM, 0); /* I want to get an IPv4 IP address */ ifr.ifr_addr.sa_family = AF_INET; /* I want IP address attached to interfaceName */ strncpy(ifr.ifr_name, ifName, IFNAM.. 더보기
Cache Friendly Code 기법 캐쉬 알고리즘에 따라 코딩을 하는 것을 Cache Friendly Code 기법이라 합니다. 캐쉬 알고리즘에는 두가지의 로컬리티(Locality)를 이용합니다.1. Temporal Locality : 프로그램 실행 시 한번 접근이 이루어진 주소의 메모리 영역은 자주 접근하게 된다는 속성.2. Spatial Locality : 프로그램 실행 시 접근하는 메모리 영역은 이미 접근이 이루어진 영역의 근처일 확률이 높다는 프로그램의 성격 위 두가지 특징으로 캐쉬 메모리에 Data를 저장 시켜 놓고 메인메모리가 아닌 캐쉬 메모리에서 바로 데이터를 가지고 오게 됩니다.!!! 이 두 형태에 맞게 코딩하는 것이 Cache Friendly Code 인데 한가지 들어보겠습니다.int tmp[10][10] = {{1,2,3.. 더보기
[ Android ] htons 네트워크는 빅엔디안CPU는 리틀 엔디안 이를 맞춰주는 (마샬링) 함수가 htons다. htons : Host to network short => Host 시스템에서 Network로 Short형 데이터로 바이트 오더htonl : Host to network long => Host 시스템에서 Network로 Long형 데이터로 바이트 오더ntohs : Network to host short => Network에서 Host로 Short형 데이터의 바이트 오더ntohl : Network to host long => Network에서 Host로 Long형 데이터의 바이트 오더 참고 : http://kwakjun0.tistory.com/47 더보기
[ Android ] AIDL 파일 예제 android 소스를 보다가 aidl 파일이 보여서..무엇인고~ 하고 바로 구글 형님에게 물어보니~ 역시나 한 유능한 분께서 블로그도 써놓고 예제도 올려놓으셨다.http://blog.naver.com/PostView.nhn?blogId=huewu&logNo=110083320332&parentCategoryNo=18&viewDate=¤tPage=1&listtype=0 AIDL ( Android Interface Definition Langage ) 는 IPC의 한 역할로,서로 다른 프로세스 에서 Class를 공유하고자 할 때 사용한다고 정의 하고 싶다. 즉, 일반적으로 Activity에선 Service를 start하고 end의 역할이 끝이다.하지만, AIDL을 이용하면 Service와 bindi.. 더보기
[ Android ] CalledFromWrongThreadException CalledFromWrongThreadException Thread를 써서 UI에 먼가 뿌릴려고 할 때,꼭 한번씩 보게되는 Exception Only the original thread that created a view hierarchy can touch its views. => 축약으로 메인스레드에서 UI 변경해!!! 메인스레드에서 만들었으니!!!라는 의미이다.. 그럼 해결책은~!! 메인 스레드에서 변경이 되도록 해주는 것이다. 이럴 경우, Handler를 이용하여 하는 방법도 있지만 아주 간편한 방법이 있어 소개한다. runOnUiThread(new Runnable() { public void run() { ....// UI 변경 코드 넣자!!! } });UI Thread 에서 Run을 시킨다는 의.. 더보기
시그널 종류 [ 시그널 종류 ] #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 #define SIGILL 4 #define SIGTRAP 5 #define SIGABRT 6 #define SIGIOT 6 #define SIGBUS 7 #define SIGFPE 8 #define SIGKILL 9 #define SIGUSR1 10 #define SIGSEGV 11 #define SIGUSR2 12 #define SIGPIPE 13 #define SIGALRM 14 #define SIGTERM 15 #define SIGSTKFLT 16 #define SIGCHLD 17 #define SIGCONT 18 #define SIGSTOP 19 #define SIGTSTP 20 #d.. 더보기
[ JNI ] String Array 관리 [ Native -> Java ] 제가 테스트해봄static jobjectArray get_string_arr(JNIEnv* env, jclass){ char *str[5] = {"first","second","third","fourth","fifth"}; jobjectArray joa= (jobjectArray)env->NewObjectArray(count, env->FindClass("java/lang/String"),env->NewStringUTF("")); if (joa == NULL) {jniThrowRuntimeException(env, "Create New jobjectArray is Null");return NULL; } for (int i = 0; i SetO.. 더보기