- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
목록Java (43)
드럼치는 프로그래머
replaceFirst() / replaceAll() 메소드(함수)로 문자열을 치환할 때, 대소문자 구분없이 바꾸려면 정규식의 앞 부분에 (?i) 라는 옵션을 넣어주면 됩니다. 물음표+소문자i(아이)입니다. 영문 알파벳 대소문자 구분없이 치환 예제 파일명: Foo.java public class Foo { public static void main(String[] args) { String s = "Abc abC ABC abc"; // 원본 문자열 String s2; System.out.println("원본: " + s); System.out.println(); // 줄바꿈 s2 = s.replaceFirst("(?i)abc", "ZZZ"); System.out.println("치환(1): " + s2)..
스트림을 중심으로 하는 자바에서 기존 입출력(IO)은 블로킹 모드입니다. Blocking은 자바의 Synchronized 키워드와 같다고 생각하면 이해가 쉽습니다. 즉, 어떤 작업을 하기 위해 먼저 접근한 요청이 다 끝나기 전에는 뒤이어 접급한 요청들은 먼저 들어온 요청이 다 끝나기를 기다려야 하는 것인데 만약 앞선 요청이 어떤 문제점에 의해 완전히 처리되지 않고 블럭된 상태로 있게 된다면 뒤이은 요청들은 영원히 앞선 요청이 끝나기만을 기다릴 것입니다. 이에 반해 Non-Blocking은 들어온 요청을 바로 처리하는 것인데 앞선 요청이 다 끝나기를 기다리지 않아도 된다는 것입니다. 1) Blocking 모드의 단점 보통 IO에서는 서버에 접속해서 accept()를 호출하는 부분에서 블러킹이 발생한다. 만..
Arrays.fill 함수 사용 안드로이드에서도 지원 import java.util.Arrays; http://developer.android.com/reference/java/util/Arrays.html 에 자세히 나옴 ex) Arrays.fill(src,value) / Arrays.fill(src,start,end,value) [출처] http://blog.naver.com/PostView.nhn?blogId=turnkick&logNo=10157792154
안드로이드는 초보 개발자가 가장 쉽다고 느끼는 플랫폼이다. 제작 툴이 저렴하고 개발 커뮤니티가 활성화되어 있으며 개발 언어도 익숙한 자바(Java)이기 때문에 안드로이드 어플 개발은 한결 쉽게 진행된다. 하지만 초보 개발자의 경우 안드로이드 앱 개발을 만만하게 생각한 탓에 실수를 하는 경우도 많다. 안드로이드 어플 개발 시 범하기 쉬운 실수 10가지를 재팬인터넷닷컴이 정리했다. 내용은 아래와 같다. 1. 설명서없이 개발을 시작한다. 안드로이드 개발(Android Developers) 사이트는 개발자에게 유용한 정보를 주기 위한 사이트. 유용한 문서가 SDK 툴과 함께 다운로드할 수 있고, 온라인에서 바로 열람이 가능하다. 안드로이드 어플을 제작하기 위한 가이드와 튜토리얼, 비디오, 트레이닝 킷이 포함되어..
16진수 문자열 (Hex String)을 byte 배열로 변환하거나, byte 배열을 16진수 문자열로 변환하는 자바 코드는 다음과 같다. public class HexTest { public static byte[] hexToBytes(String hex) { byte[] result = null; if (hex != null) { result = new byte[hex.length() / 2]; for (int i = 0; i < result.length; i++) { result[i] = (byte) Integer.parseInt(hex.substring(2 * i, 2 * i + 2), 16); } } return result; } public static String asHex(byte[] by..
JNI(Java Native Interface) 플랫폼 독립성을 버리고, 기능을 취한다. 자바 프로그램을 작성하다보면, 부득이하게 시스템 의존적 코딩을 필요로 하는 때가 있다. 하지만, 자바로서는 그러한 욕구를 감당할 수는 없다. 따라서, 자바의 클래스 파일이 C/C++의 함수를 호출하여, 그 결과만 되돌려받게 하는 것도 한 방법이다. 그렇지만 이 자체로서 이미 플랫폼 독립적이라는 특성은 사라졌다고 볼 수밖에 없다. 프로그램 작성 첫째 단계, 자바 프로그램 작성 우선, Native접근이 필요한 메쏘드만 native 키워드를 사용해 구현하지 않은 채 그대로 두고, 나머지는 모두 구현한 후, 컴파일한다. public class Hello { public native void getHello(); static..
스트림으로부터 데이터를 읽으려고 스트림의 read 메소드를 호출했을 때 read 메소드가 어떻게 반응하는지 정확하게 알아야 합니다. 왜냐하면 read 메소드가 여러분의 예상과는 다르게 반응할 때도 있기 때문입니다. 물론 read 메소드를 호출할 때 예상과는 다르게 read 메소드가 반응한다고 해서 read 메소드의 잘못은 아닙니다. 그것은 read 메소드를 호출하는 스트림의 종류에 따라서 read 메소드의 결과가 달라질 수 있기 때문입니다. 자바에는 크게 두가지의 read()가 있습니다. 기다리는 read()와 기다리지 않는 read()로 부르는데,기다리는 read()를 느린 read() 라고도 부릅니다. 스트림이 파일등으로부터 만들어진 것 이라면 read()는 기다리지 않는 read()입니다. 반면 네..
// parameter jobject YourJObjectRepresentingArrayList; // I suppose you have the JNIEnv somehow JNIEnv* env; // use the Array list ArrayList_class = env->FindClass( "java/util/ArrayList" ); // to conver jobject to jstring jmethodID caster = env->GetMethodID(ArrayList_class, "toString", "()Ljava/lang/String;"); // get two methods Get_method = env->GetMethodID( ArrayList_class, "get", "(I)Ljava/la..
오늘은 JNI 중 Local Reference 와 Global Reference 에 대해 알아보겠습니다. 이 글은 http://java.sun.com/docs/books/jni/html/refs.html#27423 내용을 요약 정리한 내용입니다. Local and Global References JNI는 jobject, jclass, jstring, jarray 등을 지원을 하는데 그것들은 opaque reference 입니다. 그래서 이녀석들은 JNI 함수를 통해서 opaque reference 의 내용물들을 받아와야 합니다. 이 opaque reference 의 장점은 JVM 의 내부구현에 상관없이 native code 를 구현할 수 있다는 것입니다. 프로그래머는 JNI 가 지원하는 다음의 refer..
InputStream 은 2번 읽을 수 없다. InputStream 을 이용해서 Cache 저장하고, 해당 Stream 을 BitmapFactory 를 이용해서 decoding 을 했더니, BitmapFactory 에서 항상 null Bitmap 을 return 하더이다. 그래서 알아보니, InputStream 은 사실 한번만 사용할 수 있다. 한번 read 로 position 이 이동된다면, 다시 원점으로 돌릴 수 없다. mark 와 reset 을 이용한 방법이 있다고 하나, 이는 추가 구현이 필요하다. 그래서 보통 copy 를 하는 방법을 사용하곤 하는데, 이 역시도 추가 library 가 필요하다. 결국 잘 생각해서 input stream 을 한번만 사용하던지 memory 상 array 에 cach..