???????????? native???? java.lang.Object ????е????hashCode??????
????public native int hashCode();
????????и?native????????????????????????????????????native??
?????????? native ?? JNI??Java Native Interface
??????????????????????????????????????????????????????????д???ɡ?Java???и?????????C??????л???????API?????Java Native Interface (Java??????)??

?????????? Java ???? C ??“Hello??JNI”
????????????????°?????????У?
????1?????????Java?????????????? native ??????????????? loadLibrary??HelloNative.java ???????£?
public class HelloNative
{
static
{
System.loadLibrary("HelloNative");
}
public static native void sayHello();
@SuppressWarnings("static-access")
public static void main(String[] args)
{
new HelloNative().sayHello();
}
}
??????????????????native??????????????????????????á?native ????????????????????JVM?????????÷??????????壬?????????C??????????????????????  JVM??????“A Java Exception has occurred.”???????????£?
????Exception in thread "main" java.lang.UnsatisfiedLinkError: no HelloNative in java.library.path
????at java.lang.ClassLoader.loadLibrary(Unknown Source)
????at java.lang.Runtime.loadLibrary0(Unknown Source)
????at java.lang.System.loadLibrary(Unknown Source)
????at HelloNative.<clinit>(HelloNative.java:5)
???????????????????????????????????????sayHello?????????????д??????????????
????2??????javah??????????÷?????C????????.h
??????HelloNative.java ?????? javac javah?????

?????????????? HelloNative.h??? ??
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloNative */
#ifndef _Included_HelloNative
#define _Included_HelloNative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class:     HelloNative
* Method:    sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloNative_sayHello
(JNIEnv *?? jclass);
#ifdef __cplusplus
}
#endif
#endif
????jni.h ??????????/%JAVA_HOME%include
????3????????????дC???????????
?????????????????????sayHello???????£?
????#include "HelloNative.h"
????#include <stdio.h>
????JNIEXPORT void JNICALL Java_HelloNative_sayHello
????{
????printf("Hello??JNI");
????}
????4??????dll????????Java????load?????ü??ɡ?
??????Windows???MinGW GCC ????????
????gcc -m64  -Wl??--add-stdcall-alias -I"C:Program FilesJavajdk1.7.0_71include" -I"C:Program FilesJavajdk1.7.0_71includeincludewin32" -shared -o HelloNative.dll HelloNative.c
????-m64???????dll????64λ?????????? HelloNative??
????java HelloNative
?????????????????????????????£?
????Hello??JNI
????????JNI ???? C ?????