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 | 크기 |
boolean | jboolean | unsigned 1 byte |
byte | jbyte | signed 1 byte |
char | jchar | unsigned 2 byte |
short | jshort | signed 2 byte |
int | jint | signed 4 byte |
long | jlong | signed 8 byte |
float | jfloat | 4 byte |
double | jdouble | 8 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에 정의되어 있다.
댓글
댓글 쓰기