JAVAÓиöÀ¬»ø»ØÊÕ»úÖÆ£¬Ã»ÓÐÒýÓõĶÔÏó»á±»ÐéÄâ»úÔÚÕûÀíÄÚ´æÊ±½øÐлØÊÕ£¬ËùÒÔʹÓÃÈõÒýÓÃjava¶ÔÏóʱ£¬¶øÊµ¼Êµ÷ÓÃΪ³Ö¾Ã¶ÔÏóʱ½«»á³öÏÖÎÊÌâ¡£²¢ÇÒÕâ¸öÎÊÌâÓÐʱ»áËæ»ú³öÏÖ£¬Õâ¸ö»áÄÚ´æÕûÀí»ØÊÕʱ»úÓйء£
ÏÂÃæ£¬ËµÏ¶ÔÓÚÔÚJNIÖÐʹÓÃJAVAÖжÔÏó´úÂë±àд·½·¨£º
JAVAÀà·½·¨±àд£º
JNI ±àд·½·¨£º
ÔÚJNIÖÐÌṩÈýÖÖÀàÐ͵ÄÒýÓãº
1¡¢Local Reference ±¾µØÒýÓ㬺¯Êýµ÷ÓÃʱ´«Èëjobject»òÕßjniº¯Êý´´½¨µÄjobejct£¬ÆäÌØµã¾ÍÊÇÒ»µ©JNI²ãº¯Êý·µ»Ø£¬jobject¾Í±»À¬»ø»ØÊÕµô£¬ËùÒÔÐèҪעÒâÆäÉúÃüÖÜÆÚ¡£¿ÉÒÔÇ¿ÖÆµ÷ÓÃDeleteLocalRef½øÐÐÁ¢¼´»ØÊÕ¡£
jstring pathStr = env->NewStringUTF(path)
....
env->DeleteLocalRef(pathStr);
2¡¢Global Reference È«¾ÖÒýÓà £¬ÕâÖÖ¶ÔÏóÈç²»Ö÷¶¯ÊÍ·Å£¬ËüÓÀÔ¶¶¼²»»á±»À¬»ø»ØÊÕ
´´½¨£º env->NewGlobalRef(obj);
ÊÍ·Å£º env->DeleteGlobalRef(obj)
3¡¢Weak Global Reference ÈõÈ«¾ÖÒýÓã¬Ò»ÖÖÌØÊâµÄ Global Reference ,ÔÚÔËÐйý³ÌÖпÉÄܱ»À¬»ø»ØÊÕµô£¬ËùÒÔʹÓÃʱÇëÎñ±Ø×¢ÒâÆäÉúÃüÖÜÆÚ¼°ËæÊ±¿ÉÄܱ»À¬»ø»ØÊÕµô,±ÈÈçÄÚ´æ²»×ãʱ¡£
ʹÓÃǰ¿ÉÒÔÀûÓÃJNIEnvµÄ IsSameObject ½øÐÐÅж¨ËüÊÇ·ñ±»»ØÊÕ
env->IsSameObject(obj1,obj2);