JNI 자료형

From Evernote:

JNI 자료형


JNI 원시 자료형

자바의 원시 자료형은 각각의 자료형의 크기에 맞게 C언어의 자료형으로 맵핑되는데, 자바의 자료형 이름 앞에 j가 붙는다. jni.h, jni_md.h 파일에 정의되어 있다.
예를 들어, 자바의 int형은 JNI에서 jint 형으로 맵핑되는데, 이는 부호있는 32비트 정수형으로 정의되어 있다.
자바의 boolean, byte, char, short, int, long, float, double형은 JNI에서 각각 jboolean, jbyte, jchar, jshort, jint, jlong, jfloat, jdouble형이다.

#. 원시자료형은 '값'이 복사되어 매개변수가 전달되고, 그 외의 객체들은 '참조'가 전달된다.

#. 덤으로, jni.h에는 JNI_FALSE, JNI_TRUE도 정의되어 있는데 그 값은 각각 0, 1이다.
또한, 크기 등을 나타내기 위한 jsize형은 jint형과 같다.

자바JNI크기
booleanjbooleanunsigned 1 byte
bytejbytesigned 1 byte
charjcharunsigned 2 byte
shortjshortsigned 2 byte
intjintsigned 4 byte
longjlongsigned 8 byte
floatjfloat4 byte
doublejdouble8 byte




JNI 참조 자료형

JNI에는 몇가지 참조 자료형이 정의되어 있는데, C언어에서는 모두 jobject형으로 정의되어 있고, C++에서는 상속 구조로 표현되어 있다.

  • jobject (java.lang.Object)
    • jclass (java.lang.Class)
    • jstring (java.lang.String)
    • jarray
      • jobjectArray (Object[])
      • jbooleanArray (boolean[])
      • jbyteArray (byte[])
      • jcharArray (char[])
      • jshortArray (short[])
      • jintArray (int[])
      • jlongArray (long[])
      • jfloatArray (float[])
      • jdoubleArray (double[])
    • jthrowable (java.lang.Throwable)


jvalue형은 jboolean, jbyte, jchar, jshort, jint, jlong, jfloat, jdouble, jobject 형의 공용체로 jni.h에 정의되어 있다.




댓글

이 블로그의 인기 게시물

자바 암호화 확장 (JCE) 관련 자바 1.8.0_151 이후 변경 사항

좌표 변환: 회전 이동

HTTP POST