JavaÉϵı¦Ê¯ JRuby 1.5Õýʽ·¢²¼
2010Äê05ÔÂ12ÈÕ£¬JRubyÍŶӷdz£¸ßÐ˵ÄÐû²¼1.5.0°æµÄ·¢²¼¡£ÔÚÕâ֮ǰ£¬Ôø¾·¢²¼¹ýJRuby 1.5.0 RC1µÄ·¢²¼ÏûÏ¢£¬Ïà±È֮ϣ¬Õýʽ·¢²¼±¾±¾ÓÖÌṩÁ˺ܶà¸üС£
JRuby 1.5.0 °æ±¾µÄÖ÷Ò³ºÍÏÂÔØµØÖ··Ö±ðÊÇ£º
Ö÷Ò³£ºhttp://www.jruby.org/
ÏÂÔØ£ºhttp://www.jruby.org/download
Õâ´Î·¢²¼ÊÇJRubyÀúÊ·ÉÏ¿ª·¢ÖÜÆÚ×µÄÒ»´Î£¬×ܹ²¾ÀúÁ˽ü5¸öÔµÄʱ¼ä£¬µ«ÊÇÕâÒ²ÊǶÔJRuby×ö³öÐÞÕý×î¶àµÄÒ»´Î¡£³ýÁËÐÞÕýÀϰ汾´æÔÚµÄÎÊÌâÒÔÍ⣬»¹Ôö¼ÓÁ˷dz£¶àµÄÐÂÌØÐÔ¡£ÎªÁ˱£Ö¤¼æÈÝÐÔÎÊÌ⣬ÿ¸öÐÞÕý¶¼¾¹ý¾«ÐĵĿ¼ÂǺÍÉè¼Æ£¬ÒÔ±£Ö¤´øÀ´µÄ±ä»¯ºÍÓ°Ïì¸üС¡£Õâ¶ÔÓÚÒѾ¾ß±¸JRuby 1.4.0¾ÑéµÄÓû§À´Ëµ£¬¸üÈÝÒ×Éý¼¶µ½1.5.0°æ±¾£¬²¢ÇÒ´ÓÖÐÌåÑ鵽а汾Ëù´øÀ´µÄºÃ´¦¡£¶ÔÓÚÐÂÓû§À´Ëµ£¬Í¨¹ýʹÓÃеİ汾£¬½«ÌåÑéµ½JRuby´ø¸öÄãµÄ³©¿ìµÄ¸Ð¾õ£¬²¢½«´ó·ù¶È½µµÍÑз¢µÄ·çÏÕ¡£
1.5.0°æ±¾µÄÖ÷ÒªÁÁµã°üÀ¨£º
¡ôΪÁËÌáÉýÐÔÄܺÍFFIÖ§³Ö£¬ÖØÐÂÉè¼ÆÁ˱¾»ú·ÃÎÊ¿ò¼Ü
¡ô±¾»ú·ÃÎÊ*NIXƽ̨
¡ôÖ§³Ö²¢¼¯³ÉAnt¹¤¾ß
¡ô¸üºÃµÄÖ§³ÖWindows
¡ô¶ÔRubyµ÷ÓÃJava½øÐÐÁË¶à·½ÃæµÄ¸Ä½ø£¬°üÀ¨ÕýÈ·ÐÔ¡¢ÄÚ´æÊ¹ÓÃÒÔ¼°ËٶȵÈ
¡ôǶÈë²¢¸Ä½øÁËÓû§ÊäÈëAPI£¨JSR-223¡¢BSF¡¢RedBridgeµÈ£©
¡ôÈí¼þÉý¼¶£ºRuby 1.8.7±ê× ......
½Ó´¥javaÕýÔò±í´ïʽÓÐÒ»ÄêµÄʱ¼äÁË£¬ºÃ¾ÃûÓи´Ï°ÁË£¬ÏÖÔÚд¸öÀ´¸´Ï°Ò»Ï£º
package com.fengfei.test;
public class GetNumber {
/**
* ÌåÑéJavaµÄÕýÔò±í´ïʽ£¬ÕÒ³ö×Ö·û´®sÖеÄÊý×Ö
* @param args
*/
public static void main(String[] args) {
String s = "n1f-j3s-2d4hdr9e7r7e-er7e294S@`@2:3@`@&*:*^%%594";
String s1 = s.replaceAll("\\D", "");
String s2 = s.replaceAll("[^0-9]", "");
String []strList = s.split("\\D");
StringBuffer sb = new StringBuffer();
for(int i = 0 ;i< strList.length;i++){
sb.append(strList[i]);
}
System.out.println(s1);
&nb ......
1£© ¾ßÌåÀ಻ÊÇÓÃÀ´¼Ì³ÐµÄ¡£Äܱ»¼Ì³ÐµÄÒ»¶¨ÊdzéÏóÀà¡£
Èç¹ûÔÚÒ»¸öÔʼµÄÉè¼ÆÀÓÐÁ½¸ö¾ßÌåÀ࣬ÀàAºÍÀàB,ÀàBÊÇÀàAµÄ×ÓÀ࣬ÄÇô×îºÃµÄÐ޸ķ½°¸ÊÇ£º
½¨Á¢Ò»¸ö³éÏ󣨻òÕß½Ó¿Ú£©C£¬È»ºóÈÃÀàAºÍÀàB³ÉΪÀàCµÄ×ÓÀà
2)³éÏóÀàÓ¦¾¡¿ÉÄܵÄÓµÓжàµÄ¹²Í¬´úÂë
Ò»¸ö¶ÔÏó´Ó³¬Àà¼Ì³Ð¶øÀ´µÄ´úÂ룬ÔÚ²»Ê¹ÓÃʱ²»»áÔì³É¶Ô×ÊÔ´µÄÀË·Ñ¡£
3)³éÏóÀàÓ¦µ±ÓµÓо¡¿ÉÄÜÉÙµÄÊý¾Ý
Ò»¸ö¶ÔÏóµÄÊý¾Ý²»ÂÛÊÇ·ñʹÓö¼»áÕ¼ÓÃ×ÊÔ´¡£ ......
¿É´ÓIOµÄÀà²ã´Î£¬IO¿ò¼ÜµÄÉè¼ÆÄ£Ê½À´ÂÛÊö¡£
×ÜÌåÀ´Ëµ£¬IO¿ÉÒÔ·ÖΪ×Ö½ÚÁ÷ºÍ×Ö·ûÁ÷£¬²»Í¬ÔÚÓÚ×Ö·ûÁ÷ÓÉ×Ö½ÚÁ÷°ü×°¶øÀ´£¬ÔÚIO¶ÁÈëÖ®ºó¾¹ýJVM´¦Àí£¬°Ñ×Ö½ÚÁ÷ת»»³É×Ö·ûÁ÷¡£¶ø×Ö·ûÁ÷µÄ×Ö·û²ÉÓÃÄÄÖÖ×Ö·û±àÂëʵÏÖÓÉJVMĬÈϱàÂë¾ö¶¨¡£
¶øÃ¿¸öÁ÷¶¼·ÖÊäÈëºÍÊä³ö£¬ËùÒÔ£¬×ÜÌåÀ´Ëµ£¬IOÓÐËĸö¶¥²ãÀࣺ
InputStream
OutputStream
Reader
Writer
¶ø×÷Ϊ»úÆ÷¼¶±ðÓÚ»úÆ÷Ö±½Ó½»»¥µÄÔòÊÇ×Ö½ÚÁ÷£º
InputStream
OutputStream
ÒÔIOµÄÖмäÀ࣬½øÐÐ×Ö½ÚÁ÷µ½×Ö·ûÁ÷µÄת»»¹ý¶É£¬Í¨³£¿É×÷Ϊ×Ö·ûÁ÷ÀàµÄ¹¹Ôì²ÎÊý£¬¿ÉÖ¸¶¨±àÂ룺
InputStreamReader
OutputStreamWriter
¶ø×Ö½ÚÁ÷ºÍ×Ö·ûÁ÷µÄ»º³åÈÝÆ÷À´¿´ÓÐbyteºÍcharÖ®·Ö£¬ËùÒÔÅÉÉú³ö£º
ByteArrayInputStream
ByteArrayOutputStream
CharArrayInputStream
CharArrayOutputStream
ÒÔÉÏÀàÖ»ÊDZíʾÁ÷µÄ±íʾÐÎʽ£¬¶øÔÚ´«ÊäÐÎʽÉÏ»¹±íÏÖΪÊÇ·ñÓлº³å¡£ËùÒÔ£¬¿ÉÒÔÅÉÉú³ö×ÓÀàΪ¿É»º³åÀࣺ
BufferInputStream
BufferOutputStream
BufferReader
BufferWriter
ÿһ¸ö¶¥²ãÀà¶¼ÓжÔĿ¼Îļþ£¨File£©µÄÖ§³Ö£º
FileInputStream
FileOutputStream
FileReader
FileWriter
ÔÚJavaÖУ¬Ò»¸öÇ¿´óµÄ¹¦ÄܾÍÊÇ¿ÉÒÔ¶Ô¶ÔÏó½øÐÐÐ ......
Îå¡¢XMLģʽ
l XMLģʽÄܸü¾«È·µÄ´¦ÀíXML½á¹¹Ô¼ÊøµÄ±íʾ֮Íâ»¹ÎªÔ¼ÊøÊý¾ÝµÄ´¦ÀíÌṩһ¸öXMLÑùʽ¡£Ä£Ê½Ö»ÊÇÒ»¸öXMLÎĵµ£¬ÊÜDTDµÄÔ¼Êø¡£¶ÔÓÚXMLģʽ¶øÑÔ£¬XML DTDÖ»ÊÇÒ»ÖÖ´´½¨ÎĵµÔ¼ÊøµÄÊֶΡ£ÒòΪXMLģʽÊÇΪÁËÇ¿»¯XMLÎĵµµÄÓÐЧÐÔ£¬Ëü±ØÐë²ÉÓÃÒ»ÖÖ»úÖÆ£¬¶ø²»ÊÇ×Ô¼º¶¨ÒåÔ¼ÊøÌõ¼þ¡£ÕâÖÖ»úÖÆ±ØÐëÊÇÒ»¸öDTD¡£µ«ÊÇÔʼµÄDTDÔÊÐí´´½¨Ò»¸öģʽ£¬Õâ¸öģʽÔÊÐíËùÓÐÆäËûÎĵµ¿ÉÒÔÍêÈ«ÅׯúDTD¡££¨¹Å¹ÖµÄÂß¼£©
l XMLģʽÎĵµÒÔÒ»¸ö±ê×¼µÄXMLÉùÃ÷×÷Ϊ¿ªÍ·È»ºóÒýÓÃXMLģʽµÄÃû×ֿռ䡣
l ¿É½ÓÊܵIJÙ×÷ʱ¾³£Ê¹ÓÃschema×÷ΪXMLģʽÎĵµµÄ¸ùÔªËØ£¬È»ºóÊǹ涨һЩÃû×Ö¿Õ¼äµÄ¶¨Ò壬¶¨ÒåµÄÊýÁ¿Ó¦ÓëÎÒÃÇ´¦ÀíÔʼµÄXMLÎĵµ¶¨ÒåµÄÏ൱¡£
l ´´½¨È±Ê¡µÄÃû×Ö¿Õ¼äÉùÃ÷<schema xmlns=”http://www.w3.org/1999/XMLSchema”>ÈκÎÔªËØ²»ÊÇ´øÓÐÌØ¶¨Ãû×Ö¿Õ¼äǰ׺£¬¾ÍÊÇ´øÓÐÁíÒ»¸öÓëȱʡµÄÃû×Ö¿Õ¼äÏà¹ØÁªµÄÃû×Ö¿Õ¼äǰ׺
<schema targetNamespace="http://www.oreilly.com/catalog/javaxml"
xmlns:JavaXML="http://www.oreilly.com/catalog/javaxml"
xmlns="http://www.w3.org/1999/XMLSchem ......
Îå¡¢XMLģʽ
l XMLģʽÄܸü¾«È·µÄ´¦ÀíXML½á¹¹Ô¼ÊøµÄ±íʾ֮Íâ»¹ÎªÔ¼ÊøÊý¾ÝµÄ´¦ÀíÌṩһ¸öXMLÑùʽ¡£Ä£Ê½Ö»ÊÇÒ»¸öXMLÎĵµ£¬ÊÜDTDµÄÔ¼Êø¡£¶ÔÓÚXMLģʽ¶øÑÔ£¬XML DTDÖ»ÊÇÒ»ÖÖ´´½¨ÎĵµÔ¼ÊøµÄÊֶΡ£ÒòΪXMLģʽÊÇΪÁËÇ¿»¯XMLÎĵµµÄÓÐЧÐÔ£¬Ëü±ØÐë²ÉÓÃÒ»ÖÖ»úÖÆ£¬¶ø²»ÊÇ×Ô¼º¶¨ÒåÔ¼ÊøÌõ¼þ¡£ÕâÖÖ»úÖÆ±ØÐëÊÇÒ»¸öDTD¡£µ«ÊÇÔʼµÄDTDÔÊÐí´´½¨Ò»¸öģʽ£¬Õâ¸öģʽÔÊÐíËùÓÐÆäËûÎĵµ¿ÉÒÔÍêÈ«ÅׯúDTD¡££¨¹Å¹ÖµÄÂß¼£©
l XMLģʽÎĵµÒÔÒ»¸ö±ê×¼µÄXMLÉùÃ÷×÷Ϊ¿ªÍ·È»ºóÒýÓÃXMLģʽµÄÃû×ֿռ䡣
l ¿É½ÓÊܵIJÙ×÷ʱ¾³£Ê¹ÓÃschema×÷ΪXMLģʽÎĵµµÄ¸ùÔªËØ£¬È»ºóÊǹ涨һЩÃû×Ö¿Õ¼äµÄ¶¨Ò壬¶¨ÒåµÄÊýÁ¿Ó¦ÓëÎÒÃÇ´¦ÀíÔʼµÄXMLÎĵµ¶¨ÒåµÄÏ൱¡£
l ´´½¨È±Ê¡µÄÃû×Ö¿Õ¼äÉùÃ÷<schema xmlns=”http://www.w3.org/1999/XMLSchema”>ÈκÎÔªËØ²»ÊÇ´øÓÐÌØ¶¨Ãû×Ö¿Õ¼äǰ׺£¬¾ÍÊÇ´øÓÐÁíÒ»¸öÓëȱʡµÄÃû×Ö¿Õ¼äÏà¹ØÁªµÄÃû×Ö¿Õ¼äǰ׺
<schema targetNamespace="http://www.oreilly.com/catalog/javaxml"
xmlns:JavaXML="http://www.oreilly.com/catalog/javaxml"
xmlns="http://www.w3.org/1999/XMLSchem ......
Ôڳɹ¦ÊµÏÖJavaµ÷ÓÃC++Ö®ºó£¬½ÓÏÂÀ´Ïëµ½ÄÜ·ñͨ¹ýJNAʵÏÖJavaµ÷ÓÃFortran£¬½ñÌìÊÔÑéÁËһϣ¬»¹ÊDZȽÏÈÝÒ׵ġ£
ÍøÉÏÓÐÒ»¸öJavaµ÷ÓÃF95µÄÀý×Ó£¬µ«ÊÇÎÒ¿¼ÂDz»½öҪʵÏÖF95µÄµ÷Ó㬻¹ÒªÊµÏÖF77µÄµ÷Óã¬ËùÒÔ·ÑÁËһЩÖÜÕÛ¡£
ÎÊÌâµÄ¹Ø¼üÔÚÓÚF77Ϊ¹ý³ÌÃû×Ô¶¯Ìí¼ÓÁËÒ»¸öβ²¿µÄÏ»®Ïߣ¬ËùÒÔsub1Õâ¸ö¹ý³Ì£¬µ½JavaÒ»¶Ë£¬¾Í±ä³ÉÁËsub1_£¬ÖªµÀÁËÕâÒ»µã£¬ºóÃæ¾Í¼òµ¥ÁË¡£
1¡¢´´½¨Ò»¸ö¶¯Ì¬Á´½Ó¿âÏîÄ¿FortranDLL£¬Ð½¨Ò»¸ö¼òµ¥µÄfortranÔ´³ÌÐòfor1.f£º
subroutine sub1(i)
INTEGER i;
PRINT*, "SUB1 CALLED"
PRINT*, i
END subroutine
±àÒë´úÂëÉú³ÉlibFortranDLL.dll¡£
2¡¢Ð½¨Ò»¸öJavaÏîÄ¿£¬°üº¬JNA¿â
´´½¨Ò»¸ö¶¯Ì¬¿â½Ó¿Ú´úÂëFLib.java£º
import com.sun.jna.Library;
import com.sun.jna.ptr.ByReference;
public interface FLib extends Library {
void sub1_(ByRef ......