Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ÓÅ»¯JavaÖеÄÕýÔò±í´ïʽ

Ô­ÎĵØÖ·£º http://www.javaworld.com/javaworld/jw-09-2007/jw-09-optimizingregex.html
       
Èç¹ûÄ㻨·ÑÁËÊýСʱºÍÕýÔò±í´ïʽ×ö¶·Õù£¬Ö»ÊÇΪÁËÈÃËüÍê³ÉËü¼¸ÃëÄھͿÉÒÔÍê³ÉµÄÆ¥Å䣬ÄÇôÕâƪÎÄÕÂÕýÊÇΪÄãÁ¿Éí¶¨×öµÄ¡£Cristian
MocanuÖ¸³öÁËÔÚʲôµØ·½ÕýÔòģʽƥÅä»á·¢ÉúÑÓ³Ù£¬²¢ÇÒ½âÊÍÁËΪʲô¡£È»ºó£¬ËûÑÝʾÁËÈçºÎ×ö¸ü¶àµÄ»ØËõ£¨backtracking£©¶ø²»ÊÇÃÔʧÔÚÆä
ÖУ¬ÈçºÎÓÅ»¯Ì°À·Ä£Ê½ºÍÃãǿģʽ£¨ÒëÕß×¢--Õâ¸ö·­ÒëÊÇÔÚÍøÉϲ鵽£¬×ܸоõ²»Ì«ºÏÊÊ£¬Ô­ÎÄÊÇreluctant
quantifier£©£¬ÒÔ¼°Possessive
quantifiers£¨ÒëÕß×¢--Õâ¸öÓеĵط½³ÆΪÇÀÕ¼Á¿×Ó£©¡¢¶ÀÁ¢·Ö×飨independent
grouping£©ºÍ»·ÊÓ£¨look-around£©ÎªÊ²Ã´ÊÇÄãµÄÅóÓÑ¡£
        ±àдÕýÔò±í´ïʽ²»½ö½öÊÇÒ»ÖÖ¼¼ÇÉ£¬¸üÊÇÒ»ÖÖÒÕÊõ --Jeffrey Friedl
        
±¾ÎÄÖУ¬ÎÒ½«½éÉÜһЩÕýÔò±í´ïʽÖÐʹÓÃĬÈϵÄjava.util.regex°üµÄ³£¼ûȱµã¡£ÎÒ½«½âÊÍΪʲô»ØËõ£¨backtracking£©¼ÈÊÇʹÓÃÕýÔò
±í´ïʽ½øÐÐģʽƥÅäµÄ»ù´¡£¬ÓÖÊÇÓ¦ÓóÌÐò´úÂëÖеij£¼ûÆ¿¾±£»ÎªÊ²Ã´ÔÚʹÓÃÌ°À·Ä£Ê½ºÍÃãǿģʽҪѧ»á½÷É÷£¬ÒÔ¼°ËüÊÇÄãÕýÔò±í´ïʽÓÅ»¯µÄÒªËØ¡£È»ºóÎÒ»á½éÉÜÓÅ
»¯ÕýÔò±í´ïµÄ¼¼ÇÉ£¬²¢ÌÖÂÛͨ¹ýJavaģʽƥÅäÒýÇæÔËÐÐеÄÕýÔò±í´ïʽʱ»á·¢Éúʲô¡£
       
»ùÓÚ±¾ÎĵÄÄ¿µÄ£¬ÎÒ¼ÙÉèÄãÒѾ­ÓÐʹÓÃÕýÔò±í´ïʽµÄ¾­Ñ飬²¢ÇÒ¶ÔÔÚJava´úÂëÖÐÓÅ»¯ËüÃDZ§ÓкܴóµÄÐËȤ¡£±¾ÎÄÖ÷Ìâ°üÀ¨¼òµ¥ºÍ×Ô¶¯ÓÅ»¯ÓÅ»¯¼¼ÇÉ£¬ÒÔ¼°ÈçºÎʹ
ÓÃÇÀÕ¼Á¿×Ó£¨possessive quantifiers£©¡¢¶ÀÁ¢·Ö×飨independent
grouping£©ºÍ»·ÊÓ£¨lookarounds£©ÓÅ»¯Ì°À·Ä£Ê½ºÍÃãǿģʽ£¨greedy and reluctant
quantifiers£©¡£¹ØÓÚJavaÖÐÕýÔò±í´ïʽµÄ½éÉÜ£¬Çë²Î¿¼±¾ÎĵÄ×ÊÔ´²¿·Ö¡£
        JavaģʽƥÅäÒýÇæºÍ»ØËõ£¨The Java pattern-matching engine and backtracking£©
        java.util.regex
°ü
ʹÓÃÒ»ÖÖ³ÆΪ·ÇÈ·¶¨ÐÔµÄÓÐÏÞ×Ô¶¯»ú£¨Nondeterministic Finite
Automaton£¬¼ò³ÆΪNFA£©µÄģʽƥÅäÒýÇæ¡£Ö®ËùÒÔ³Æ֮Ϊ·ÇÈ·¶¨ÐԵģ¬ÊÇÒòΪµ±³¢ÊÔʹÓÃÊäÈëµÄ×Ö·û´®Æ¥ÅäÒ»¸öÕýÔò±í´ïʽʱ£¬Ã¿Ò»¸ö×Ö·û»áÒòΪÕýÔò
±í´ïʽµÄ²»Í¬²¿·Ö¶ø±»¶à´Î¼ì²é¡£ÕâÒ²ÊÇÒ»ÖÖÔÚ.NET¡¢PHP¡¢Perl¡¢PythonºÍRuby±»¹ã·ºÊ¹ÓõÄÒýÇæ¡£Ëü½«´ó²¿·


Ïà¹ØÎĵµ£º

JMM JavaµÄÄÚ´æÄ£ÐÍ

JavaµÄÄÚ´æÄ£ÐÍJMM£¨Java Memory Model£©JMMÖ÷ÒªÊÇΪÁ˹涨ÁËÏ̺߳ÍÄÚ´æÖ®¼äµÄһЩ¹Øϵ¡£¸ù¾ÝJMMµÄÉè¼Æ£¬ÏµÍ³´æÔÚÒ»¸öÖ÷ÄÚ´æ(Main Memory)£¬JavaÖÐËùÓÐʵÀý±äÁ¿¶¼´¢´æÔÚÖ÷´æÖУ¬¶ÔÓÚËùÓÐÏ̶߳¼Êǹ²ÏíµÄ¡£Ã¿ÌõÏ̶߳¼ÓÐ×Ô¼ºµÄ¹¤×÷ÄÚ´æ(Working Memory)£¬¹¤×÷ÄÚ´æÓÉ»º´æºÍ¶ÑÕ»Á½²¿·Ö×é³É£¬»º´æÖб£´æµÄÊÇÖ÷´æÖбäÁ¿µÄ¿½±´£¬»º´ ......

JAVA¶ÁÊé±Ê¼Ç£¨Èý£©

      StringÀàûÓÐÌṩÐÞ¸ÄÒ»¸öÒÑ´æÔÚµÄ×Ö·û´®ÖеÄijһ¸ö×Ö·ûµÄ·½·¨£¬ÀýÈ磺String greeting="Hello";Èç¹ûÏë°Ñgreeting±ä³É"Help!"£¬²»ÄÜÖ±½Ó°ÑgreetingµÄ×îºóһλ±ä³É'p'ºÍ'!'£¬¶øÊDZ£ÁôÐèÒªµÄ×Ö·û´®£¬½«Ìæ»»µÄ×Ö·û´®Í¨¹ý"+"Á¬½ÓÔÚÒ»Æð¡£
      greeting=greeting.su ......

JavaÖеÄvolatile¹Ø¼ü×Ö

ÎÒÃÇÖªµÀ£¬ÔÚJavaÖÐÉèÖñäÁ¿ÖµµÄ²Ù×÷£¬³ýÁËlongºÍdoubleÀàÐ͵ıäÁ¿ÍⶼÊÇÔ­×Ó²Ù×÷£¬Ò²¾ÍÊÇ˵£¬¶ÔÓÚ±äÁ¿ÖµµÄ¼òµ¥¶Áд²Ù×÷ûÓбØÒª½øÐÐͬ²½¡£
ÕâÔÚJVM 1.2֮ǰ£¬JavaµÄÄÚ´æÄ£ÐÍʵÏÖ×ÜÊÇ´ÓÖ÷´æ¶ÁÈ¡±äÁ¿£¬ÊDz»ÐèÒª½øÐÐÌرðµÄ×¢ÒâµÄ¡£¶øËæ×ÅJVMµÄ³ÉÊìºÍÓÅ»¯£¬ÏÖÔÚÔÚ¶àÏ̻߳·¾³ÏÂ
volatile¹Ø¼ü×ÖµÄʹÓñäµÃ·Ç³£ÖØÒª¡£ÔÚµ±Ç°µÄ ......

¾ÞÈËÍøÂçjava±ÊÊÔ»ù´¡Ìâ

1¡¢StringÊÇ×î»ù±¾µÄÊý¾ÝÀàÐÍÂð?
»ù±¾Êý¾ÝÀàÐÍ°üÀ¨byte¡¢int¡¢char¡¢long¡¢float¡¢double¡¢booleanºÍshort¡£
java.lang.StringÀàÊÇfinalÀàÐ͵ģ¬Òò´Ë²»¿ÉÒԼ̳ÐÕâ¸öÀà¡¢²»ÄÜÐÞ¸ÄÕâ¸öÀࡣΪÁËÌá¸ßЧÂʽÚÊ¡¿Õ¼ä£¬ÎÒÃÇÓ¦¸ÃÓÃStringBufferÀà
2¡¢int ºÍ Integer ÓÐʲôÇø±ð
Java ÌṩÁ½ÖÖ²»Í¬µÄÀàÐÍ£ºÒýÓÃÀàÐͺÍԭʼÀàÐÍ£¨ ......

Ãô½Ý¿ª·¢Öбàд¸ßÖÊÁ¿Java´úÂë

Ãô½Ý¿ª·¢µÄÀíÄîÒѾ­Á÷ÐÐÁ˺ܳ¤µÄʱ¼ä£¬ÔÚÃô½Ý¿ª·¢ÖеĿª·¢µü´ú½×¶ÎÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ýÎå¸ö²½Ö裬À´ÓÐЧµÄÌá¸ßÕû¸öÏîÄ¿µÄ´úÂëÖÊÁ¿¡£
JavaÏîÄ¿¿ª·¢¹ý³ÌÖУ¬ÓÉÓÚ¿ª·¢ÈËÔ±µÄ¾­Ñé¡¢Java´úÂë±àдϰ¹ß£¬ÒÔ¼°È±·¦Í³Ò»µÄ±ê×¼ºÍ¹ÜÀíÁ÷³Ì£¬ÍùÍùµ¼ÖÂÕû¸öÏîÄ¿µÄ´úÂëÖÊÁ¿½Ï²î£¬ÄÑÓÚά
»¤£¬ÐèÒª½Ï´óµÄ²âÊÔͶÈëºÍÖÜÆÚµÈÎÊÌâ¡£ÕâЩÎÊÌâÔÚÒ»¸ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ