Java 69

valueOf() 와 parseInt()

출처: http://java67.blogspot.kr/2013/03/how-to-convert-java-string-to-int-or.html 우선 자바5 부터는 autoboxing이 되기 때문에 int와 Integer 사이의 변환은 그냥(?) 된다. Integer.valueOf()와 Integer.parseInt()를 두고 본다면 Integer.valueOf()가 내부적으로 -128~127을 캐시하기 때문에 좀 더 유용하다. 그리고, 캐시에 자료가 없으면 Integer.parseInt()를 호출한다. 그렇다면, 실제로는 String이 -128~127인 경우에만 유용한게 아닌가?

Java 2013.03.09

HttpURLConnection 사용시 http ~ https 간의 리다이렉션 처리

HttpURLConnection을 이용하여 요청을 처리하는데, 이 URL이 http -> https 나 https -> http로 리다이렉션 되는 경우 넘겨받는 InputStream에 원하는 결과가 들어있지 않다. 다음은 http - https 간의 리다이렉션을 처리하여 InputStream을 넘겨주는 코드이다. 출처 : http://docs.oracle.com/javase/1.4.2/docs/guide/deployment/deployment-guide/upgrade-guide/article-17.html private InputStream openConnectionCheckRedirects(URLConnection c) throws IOException { boolean redir; int redire..

Java 2013.01.03

Boolean.getBoolean(String name)

String으로 "true"를 주면 boolean (Boolean 말고) 으로 true 가 나오길 기대하고, Boolean.getBoolean("true")을 호출했는데, 왠걸 false가 나온다... 구현 내용을 보니... 아... 인자로 넘어간 name가지고 System.getProperty(name)를 호출해서 그 결과를 주도록 되어 있다. -_-; Boolean 객체가 왜 System property를 신경쓰나.. 아... 지금은 다음과 같은 방식으로 String "true"에서 boolean인 true를 얻어내도록 했는데, 이게 맞나 싶다. Boolean.valueOf("true").booleanValue()

Java 2009.02.26

무복사(Zero Copy) 기법

참조 : http://www.ibm.com/developerworks/kr/library/j-zerocopy/index.html?ca=drs-kr-1125 이 글은 무복사(zero copy) 기법을 통해 리눅스(Linux®)와 유닉스(UNIX®)에서 실행되는 I/O 위주의 자바(Java™) 애플리케이션의 성능을 향상시키는 방법에 대해 설명합니다. 무복사 기법은 중간 버퍼 간의 불필요한 데이터 복사를 피하게 해 주고, 사용자 공간(user space)과 커널 공간(kernel space) 사이의 맥락 전환(context switch) 횟수를 줄여 줍니다. File을 읽고, 소켓에 쓰는 과정에서 필요없는 단계를 생략함으로써 성능 향상을 기대한다. 윈도우(Windows) 환경에서는 지원되지 않는건가?

Java 2008.11.28

Java 5의 빌트인 어노테이션을 사용하는 방법

Annotations in Tiger, Part 1:메타데이터를 자바 코드에 추가하기J2SE 5.0 (Tiger)의 새로운 기능인 Annotation은 필요가 많은 메타데이터 기능을 핵심 자바 언어로 가져왔다. 메타테이터가 유용하게 쓰이는 이유를 설명하고 자바의 Annotation 소개한다. Annotations in Tiger, Part 2:커스텀 어노테이션Part 1에서 J2SE 5.0의 새로운 메타데이터 장치인 어노테이션을 소개했고 Tiger의 기본적인 빌트인 어노테이션에 초점을 맞추었다. 커스텀 어노테이션을 작성을 지원한다는 점이 특징적이였다. 이 글에서 커스텀 어노테이션을 만드는 방법과 어노테이션에 주석을 달아 코드의 문서화와 커스터마이징을 강화하는 방법을 설명하겠다.

Java 2008.07.18

JNI 를 대신할 것들

Alternatives to Java Native Interface (JNI) 참고 :http://weblog.janek.org/Archive/2005/07/28/AlternativestoJavaNativeI.html Libraries for simplifying JNIJaceJNIWrapperNativeCallNoodleglueJ2Native(웹에 자료는 있으나,홈페이지가 접속이 안됨)OOJNIxFunctionJava/COM integrationcom4jComfyJ(spin-off ofJNIWrapper)EZ JComInterfacetool for Java(2001년,없어짐)J-Integra for COMj-InteropJacobjacoZoomJava2COMJawinJCom(홈페이지가 이상해…)OLEJ..

Java 2008.07.08

멀티쓰레드 환경에서 JNI 내의 global 변수는 조심해야...

참고 :http://javaservice.net/~java/bbs/read.cgi?m=etc&b=jdk&c=r_p&n=1162440898&p=5&s=t 기존의 C환경에서 Shared library를 작성할 때와 WAS의 Java에서 사용할 shared library를작성할 때 주의할 점은, standard-alone으로 동작하는 shared library는 단일 Thread 환경에서동작하는 것을 가정하여 global 변수를 사용하여도 된다는 것입니다. 그러나, J2EE WAS환경에서동작할 때는 multi-thread환경이기에 global 변수는 특별한 주의를 요합니다. 해당 nativemethod가 서로다른 thread에 의해 동시에 불려질 수 있기 때문입니다.

Java 2008.07.03