- 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 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- 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
- 무의식이 의식을 지배한다
목록자바 (24)
드럼치는 프로그래머
[출처] https://medium.com/@joongwon/multi-thread-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C%EC%9D%98-%EC%98%AC%EB%B0%94%EB%A5%B8-singleton-578d9511fd42해당 URL의 소중한 자료 정독 후 프로그래밍 학습에 도움이 되었음을 밝힙니다.일반적으로 하나의 인스턴스만 존재해야 할 경우 Singleton 패턴을 사용하게 된다. 물론 Single Thread에서 사용되는 경우에는 문제가 되지 않지만 Multi Thread 환경에서 Singleton 객체에 접근 시 초기화 관련하여 문제가 있다.보통 Singleton 객체를 얻는 static 메서드는 getInstance()로 작명하는 게 일반적이다.그렇다면 어떻게 ..
package studySample; import java.io.*; import java.text.SimpleDateFormat; import java.util.*; class DateAdd { public static void main(String args[]){ String today = null; Date date = new Date(); System.out.println(date); // 포맷변경 ( 년월일 시분초) SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // Java 시간 더하기 Calendar cal = Calendar.getInstance(); cal.setTime(date); // 10분 더하기 c..
1. []으로 싸주면 문자자체로 인식하는 것들. * ⇒ [*] + ⇒ [+] $ ⇒ [$] | ⇒ [|] 2. \\를 붙여줘야 하는 것들. ( ⇒ \\( ) ⇒ \\) { ⇒ \\{ } ⇒ \\} ^ ⇒ \\^ [ ⇒ \\[ ] ⇒ \\] 3. 자바의 특수문자는 \을 쓴다. " ⇒ \" 4. 나머지 부호들은 괜찮은 듯 하다. 확인된 것. ! # % & @ ` : ; - . , ~ ' ex ) 위에 놈들 다 지워 보자. String c = "!\"#$%&(){}@`*:+;-.,^~|'[]"; c = c.replaceAll("!\"#[$]%&\\(\\)\\{\\}@`[*]:[+];-.,\\^~|'\\[\\]", ""); http://mean79.tistory.com/60 java replace 실행시..
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)..
이전 글에서는 JNI 를 java 측에서 JNI 를 이용해서 c/c++ 함수를 호출하는 방법을 알아보았다. 이번에는 c/c++ library 측에서 JNI를 이용하여 java 의 함수를 호출하는 방법을 알아보도록 하자. 근본적으로 JNI 를 이용해서 상대의 함수를 이용한다는 개념은 같다. 차이는 jni 가 jvm 에 있는 녀석이라서 java 에서 사용할 때는 크게 신경쓸 것이 c/c++ 쪽에서는 JNI 를 이용하기 위해 JNIEnv* 의 reference 를 넘겨주는 작업이 필요하다. 그럼 이제부터 c/c++ 에서 java 의 함수를 이용하는 방법을 알아보자. C/C++ library -> Java classjava 의 class 를 이용하려면 JVM 이 있어야 한다. 그러므로 c/c++ 에서 java ..
안드로이드때문에 JNI 를 다시 보게 되었다. ^^ 여하튼 그래서 책을 보면서 이해한 내용을 그림으로 정리했다. 코드는 나중에 정리하기로 하고, 여기서는 대략적인 개념만 익히도록 하자. 사실 이 곳의 내용은 그저 내 생각을 정리한 것이라 정확하지 않은 면이 있다.(죄송 ㅜ.ㅜ) JNI에 대한 좀 더 정확하고 상세한 내용은 ref. 3 을 참조하도록 하자. 아래 그림은 JNI 를 사용하는 방법은 시작 프로그램에 따라 2가지가 있다. Java class -> JNI -> C/C++ library : java 에서 native function 을 호출하는 경우 C/C++ library -> JNI -> Java class : c/c++ program에서 java 의 함수를 이용하는 경우 이 중에서, 아래 글은..
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()입니다. 반면 네..
오늘은 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..