JNI£¨Java Native Interface£©
JNIÊÇJava Native InterfaceµÄËõд¡£´ÓJava 1.1¿ªÊ¼£¬Java Native Interface (JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£JNIÒ»¿ªÊ¼ÊÇΪÁ˱¾µØÒѱàÒëÓïÑÔ£¬ÓÈÆäÊÇCºÍC++¶øÉè¼ÆµÄ£¬µ«ÊÇËü²¢²»·Á°ÄãʹÓÃÆäËûÓïÑÔ£¬Ö»Òªµ÷ÓÃÔ¼¶¨ÊÜÖ§³Ö¾Í¿ÉÒÔÁË¡£
ʹÓÃjavaÓë±¾µØÒѱàÒëµÄ´úÂë½»»¥£¬Í¨³£»áɥʧƽ̨¿ÉÒÆÖ²ÐÔ¡£µ«ÊÇ£¬ÓÐЩÇé¿öÏÂÕâÑù×öÊÇ¿ÉÒÔ½ÓÊܵģ¬ÉõÖÁÊDZØÐëµÄ£¬±ÈÈ磬ʹÓÃһЩ¾ÉµÄ¿â£¬ÓëÓ²¼þ¡¢²Ù×÷ϵͳ½øÐн»»¥£¬»òÕßΪÁËÌá¸ß³ÌÐòµÄÐÔÄÜ¡£JNI±ê×¼ÖÁÉÙ±£Ö¤±¾µØ´úÂëÄܹ¤×÷ÔÚÈκÎJava ÐéÄâ»úʵÏÖÏ¡£
Ò»¡¢JNI£¨Java Native Interface£©µÄÉè¼ÆÄ¿µÄ
·The standard Java class library may not support the platform-dependent features needed by your application.
·You may already have a library or application written in another programming language and you wish to make it accessible to Java applications
·You may want to implement a small portion of time-critical code in a lower-level programming language, such as assembly, and then have your Java application call these functions
¶þ¡¢JNI£¨Java Native Interface£©µÄÊéд²½Öè
·±àд´øÓÐnativeÉùÃ÷µÄ·½·¨µÄjavaÀà
·Ê¹ÓÃjavacÃüÁî±àÒëËù±àдµÄjavaÀà
·Ê¹ÓÃjavah ?jni javaÀàÃûÉú³ÉÀ©Õ¹ÃûΪhµÄÍ·Îļþ
·Ê¹ÓÃC/C++ʵÏÖ±¾µØ·½·¨
·½«C/C++±àдµÄÎļþÉú³É¶¯Ì¬Á¬½Ó¿â
·ok
1) ±àдjava³ÌÐò£º
ÕâÀïÒÔHelloWorldΪÀý¡£
´úÂë1£º
class HelloWorld {
public native void displayHelloWorld();
static {
System.loadLibrary("hello");
}
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
}
ÉùÃ÷native·½·¨£ºÈç¹ûÄãÏ뽫һ¸ö·½·¨×öΪһ¸ö±¾µØ·½·¨µÄ»°£¬ÄÇôÄã¾Í±ØÐëÉùÃ÷¸Ä·½·¨ÎªnativeµÄ£¬²¢ÇÒ²»ÄÜʵÏÖ¡£ÆäÖз½·¨µÄ²ÎÊýºÍ·µ»ØÖµÔÚºóÃæ½²Êö¡£
Load¶¯Ì¬¿â£ºSystem.loadLibrary("hello");¼ÓÔØ¶¯Ì
Ïà¹ØÎĵµ£º
¹ØÓÚJava
µÄµ×²ãÒ»Ö±Ïëдµãʲô£¬µ«ÊǺÃÏñºÜ¶àÎÊÌâÔÚÍøÉÏ»¹ÊÇ¿ÉÒÔÕҵõ½´ð°¸£¬×îºó»¹ÊǾö¶¨Ð´³öÀ´£¬Ò»À´¿ÉÒÔÈÃ×Ô¼ºÖØÎÂһϣ¬¶þÀ´¿ÉÒԺʹó¼ÒÒ»ÆðÉîÈë̽ÌֵײãµÄ֪ʶ¡£ÕâÀïÃæ»¹ÓÐһЩ³£¼ûµÄСÎÊÌ⣬Ҳ¸½´øÔÚÀïÃæµÄÔÒò£¬framework
ÆäʵҲÊǹ¹½¨ÔÚÕâЩ֪ʶµÄ»ù´¡Éϵġ£
ÂÛÒ»£ºÊýÖµÂÛ
ÎÊÌâÒ ......
ÕâÊÇÒ»¸öwebËÑË÷µÄ»ù±¾³ÌÐò£¬´ÓÃüÁîÐÐÊäÈëËÑË÷Ìõ¼þ£¨ÆðʼµÄURL¡¢´¦ÀíurlµÄ×î´óÊý¡¢ÒªËÑË÷µÄ×Ö·û´®),
Ëü¾Í»áÖð¸ö¶ÔInternetÉϵÄURL½øÐÐʵʱËÑË÷,²éÕÒ²¢Êä³öÆ¥ÅäËÑË÷Ìõ¼þµÄÒ³Ãæ¡£ Õâ¸ö³ÌÐòµÄÔÐÍÀ´×Ô¡¶java±à³ÌÒÕÊõ¡·£¬
ΪÁ˸üºÃµÄ·ÖÎö£¬Õ¾³¤È¥µôÁËÆäÖеÄGUI²¿·Ö£¬²¢ÉÔ×÷ÐÞ¸ÄÒÔÊÊÓÃjdk1.5¡£ÒÔÕâ¸ö³ÌÐòΪ»ù´¡£¬¿ÉÒÔд³öÔÚ» ......
package debug;import java.io.*;import java.lang.Thread;class MyThread extends Thread{ public int x = 0; public void run(){ System.out.println(++x); }}class R implements Runnable{ private int x = 0; public void run(){ System.out.printl ......
ÔÚѧУ×ÔѧJava£¬ÓõÄÊÇ¡¶Java³ÌÐòÉè¼Æ——Ò»ÖÖ¿ìѧ¿ÆµÄ·½·¨¡·¡£¿´ÁËÒÔºó·¢ÏÖ£¬°¡£¬ÕæÊÇÒ»±¾ºÃÊé¡£ËüÕæÊÇ¿çѧ¿Æ°¡£¬Êýѧ£¬ÎïÀí£¬ÉúÎïÎÊÌâ¶¼¿ÉÒÔÓÃJava×÷Ϊ¹¤¾ßÀ´Ñо¿¡£³ýÁ˸÷ÖÖÊýѧÎÊÌ⣬±ÈÈçËã·¨£¬µÝ¹é£¬Ëü»¹Ñо¿ÁËÎïÀíÎÊÌâ¡£ËüÉæ¼°Á˸÷ÖÖÎÊÌâ£¬ÉøÍ¸ÀíÂÛ£¬»ùÒò×éѧ£¬Mandelbort¼¯µÈ¡£×îÅ£µÄÊÇ£¬ËüÓÃÆõԼʽµÄÉè¼ ......
1.²ð·Ö×Ö·û´®
Óöµ½ÌØÊâ×Ö·û£¬±ÈÈ磺¶Ô‘$’·ûºÅ£¬¾ÍÓ¦¸ÃʹÓÑ\\$’£¬ºó×ܽá¿ÉÒÔ¼Ó¸ö·½À¨ºÅÈç "[.]"¡£
2.±éÀúHASHMAP
Iterator itr = map.keySet().itrator();
while(itr.hasNext())
{
Object temp1 = itr.next();
Object temp2 = tab.get(temp1);
}
......