자바 로 컬 방법의 학습 총화

4936 단어 자바
java    C/C++  ,          ,    ,                   ,  
。 java , :
1、 , , , ,
java 。
2、java , , C/C++ ,
, 。
3、 。
, , 。
、 java C
java C , :
, , , native , ,
, ;
class NativeMethod
{
public static native void greeting();// ;
}
, C , , java ,
ASCII , , , ,JDK
, javah , :
javac NativeMethod.java
javah NativeMethod
C ,NativeMethod.h
, , :
#include "NativeMethod.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_NativeMethod_greeting(JNIEnv* env, jclass cl)
{
printf("Hello World!
");

}
, C , 。
, java System.loadLibrary , :
static
{
System.loadLibrary("NativeMethod");//
}
main 。

1、 C java , ,

int->jint,long->jlong,byte->jbyte,char->jchar,short->jshort,float->jfloat,double-
>jdouble,boolean->jboolean
2、 , ,java UTF-16 , C
null 。java , java
UTF-8 , UTF-16 , jchar 。 C java

jstring NewStringUTF(JNIEnv* env,const char bytes[])// UTF-8 , java
, , null
jsize getStringUTFLength(JNIEnv* env,jstring string)// UTF-8
const ibyte* GetStringUTFChars(JNIEnv* env,jstring string,jboolean* isCopy)// UTF-8
, ReleaseStringUTFChars 。
void ReleaseStringUTFChars(JNIEnv* env,jstring string,const ibyte bytes[])//
bytes Java
void GetStringRegion(JNIEnv * env,jstring string,jsize start,jsize length,jchar *buffer)//
Unicode 。
void GetStringUTFREdion(JNIEnv * env,jstring string,jsize start,jsize length,jchar *buffer)//
UTF-8 。
API
3、C java :
1)
2) ID
3)
 

좋은 웹페이지 즐겨찾기