C#ºÍJavaµÄ±Õ°ü£Jon̸¡¶The Beauty of Closures¡·
ÔÎÄ£ºhttp://csharpindepth.com/Articles/Chapter5/Closures.aspx
µÚÒ»¶ÎÂÔ¡£¡£¡£
´ó¶àÊý½²±Õ°üµÄÎÄÕ¶¼ÊÇ˵º¯ÊýʽÓïÑÔ£¬ÒòΪËüÃÇÍùÍù¶Ô±Õ°üµÄÖ§³Ö×îÍêÉÆ¡£µ±ÄãÔÚʹÓú¯ÊýʽÓïÑÔʱ£¬ºÜ¿ÉÄÜÒѾÇå³þÁ˽âÁËʲôÊDZհü£¬ËùÒÔÎÒÏëдһƪÔÚ¾µäOOÓïÑÔ³öÏֵıհüÓÐʲôÓô¦Ó¦¸ÃÒ²ÊǺܺÏÊʵÄÊÂÇé¡£ÕâÆªÎÄÕÂÎÒ×¼±¸½²Ò»ÏÂC#£¨1¡¢2¡¢3£©ºÍJAVA£¨7ÒÔǰ°æ±¾£©µÄ±Õ°ü¡£
ʲôÊDZհü£¿
¼òµ¥À´½²£¬±Õ°üÔÊÐíÄ㽫һЩÐÐΪ·â×°£¬½«ËüÏñÒ»¸ö¶ÔÏóÒ»Ñù´«À´µÝÈ¥£¬¶øÇÒËüÒÀÈ»Äܹ»·ÃÎʵ½ÔÀ´µÚÒ»´ÎÉùÃ÷ʱµÄÉÏÏÂÎÄ¡£ÕâÑù¿ÉÒÔʹ¿ØÖƽṹ¡¢Âß¼²Ù×÷µÈ´Óµ÷ÓÃϸ½ÚÖзÖÀë³öÀ´¡£·ÃÎÊÔÀ´ÉÏÏÂÎĵÄÄÜÁ¦ÊDZհüÇø±ðÒ»°ã¶ÔÏóµÄÖØÒªÌØÕ÷£¬¾¡¹ÜÔÚʵÏÖÉÏÖ»ÊǶàÁËһЩ±àÒëÆ÷¼¼ÇÉ¡£
ÀûÓÃÀý×ÓÀ´¹Û²ì±Õ°üµÄºÃ´¦£¨ºÍʵÏÖ£©»á±È½ÏÈÝÒ×£¬ ÏÂÃæ´ó²¿·ÝÄÚÈÝÎÒ»áʹÓÃÒ»¸öµ¥Ò»µÄÀý×ÓÀ´½øÐн²½â¡£Àý×Ó»áÓÐJAVAºÍC#£¨²»Í¬°æ±¾£©À´ËµÃ÷²»Í¬µÄʵÏÖ¡£ËùÓеĴúÂë¿ÉÒÔµãÕâÀïÏÂÔØ¡£
ÐèÇ󳡾°£º¹ýÂËÁбí
°´Ò»¶¨Ìõ¼þ¹ýÂËij¸öÁбíÊǺܳ£¼ûµÄÐèÇó¡£ËäȻд¼¸ÐдúÂë±éÀúÒ»ÏÂÁÐ±í£¬°ÑÂú×ãÌõ¼þµÄÔªËØÌô³öÀ´·Åµ½ÐÂÁбíµÄ“ÄÚÁª”·½Ê½ºÜÈÝÒ×Âú×ãÐèÇ󣬵«°ÑÅжÏÂß¼ÌáÈ¡³öÀ´»¹ÊDZȽÏÓÅÑŵÄ×ö·¨¡£Î¨Ò»µÄÄѵã¾ÍÊÇÈçºÎ·â×°“Åж¨Ò»¸öÔªËØÊÇ·ñ·ûºÏÌõ¼þ”Âß¼£¬±Õ°üÕýºÃ¿ÉÒÔ½â¾öÕâ¸öÎÊÌâ¡£
ËäÈ»ÎÒÉÏÃæËµÁË“¹ýÂË”Õâ¸ö´Ê£¬µ«Ëü¿ÉÄÜ»áÓÐÁ½¸ö½ØÈ»²»Í¬µÄÒâ˼“°ÑÔªËØÂ˳öÀ´·Åµ½ÁбíÀï”»òÕß°Ñ“°ÑÔªËØÂ˳öÀ´ÈÓµô”¡£±ÈÈç˵“żÊý¹ýÂË”ÊǰѓżÊý”±£ÁôÏÂÀ´»¹ÊǹýÂ˵ô£¿ËùÒÔÎÒÃÇʹÓÃÁíÒ»¸öÊõÓï“¶ÏÑÔ”¡£¶ÏÑÔ¾ÍÊǼòµ¥µØÖ¸Ä³Ñù¶«Î÷ÊDz»ÊÇÂú×ãijÖÖÌõ¼þ¡£ÔÚÎÒÃǵÄÀý×ÓÖм´ÊÇÉú³ÉÒ»¸ö°üº¬ÁËÔÁбíÂú×ã¶ÏÑÔÌõ¼þµÄÐÂÁÐ±í¡£
ÔÚC#ÖУ¬±È½Ï×ÔÈ»µØ±íÏÖÒ»¸ö¶ÏÑÔ¾ÍÊÇͨ¹ýdelegate£¬ÊÂʵÉÏC# 2.0ÓÐÒ»¸öPredicate<T>ÀàÐÍ¡££¨Ë³´øÒ»ÌᣬÒòΪijЩÔÒò£¬LINQ¸üÆ«ÏòÓÚFunc<T, bool>£»ÎÒ²»ÖªµÀÕâÊÇΪʲô£¬Ïà¹ØµÄ½âÊÍÒ²ºÜÉÙ¡£È»¶øÕâÁ½¸ö·ºÐÍÀàµÄ×÷ÓÃÆäʵÊÇÒ»ÑùµÄ¡££©ÔÚJavaÖÐûÓÐdelegate£¬Òò´ËÎÒÃÇ»áʹÓÃÖ»ÓÐÒ»¸ö·½·¨µÄinterface¡£µ±È»C#ÖÐÎÒÃÇÒ²¿ÉÒÔʹÓÃinterface£¬µ«»áʹµÃ´úÂë¿´ÆðÀ´ºÜ»ìÂÒ£¬¶øÇÒ²»ÄÜʹÓÃÄäÃûº¯ÊýºÍÀÄ·´ï±í´ïʽ£C#ÖзûºÏ±Õ°üÌØÕ÷µÄʵÏÖ¡£ÏÂÃæµÄinterface/delegate¹©´ó¼Ò²Î¿¼£º
// Declaration for System.Predicate<T>
public delegate bool Predicate<T>(T obj)
// Predicate.java
public interface Pred
Ïà¹ØÎĵµ£º
ÔÚʹÓÃhibernate»òÕßspringµÄʱºò£¬ÎÒÃÇÍùÍùͨ¹ýÅäÖÃÎļþÅäÖÃÊý¾Ý¿âÁ¬½ÓÊôÐÔ¡£µ«Õâ´ÎÏîÄ¿Öв¢Ã»ÓÐÓõ½hibernateºÍspring£¬Ö»Óõ½ÁËstruts2¡£ÒªÈçºÎʵÏÖͨ¹ý¶ÁÈ¡ÎļþÅäÖûñÈ¡ÊôÐÔֵĨ£¿ResourceBundleÕâ¸öÀà¿ÉÊÇʵÏÖ¶ÁÈ¡propertiesÎļþÀ´»ñȡֵ
ÔÚjavaÖУº
public final static Object initLock = new Object();
privat ......
²Î¿¼´úÂë:
class SuperClass {
private int n;
SuperClass() {
System.out.println("SuperClass()");
}
SuperClass(int n) {
System.out.println("SuperClass(" + n + ")");
this.n = n;
}
}
class SubClass extends SuperClass {
private int n ......
private static List cloneObject(
Object obj) throws Exception {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(byteOut);
out.writeObject(obj);
ByteArrayInputStream byt ......
JAVA finally×Ö¾äµÄÒì³£¶ªÊ§ºÍ·µ»ØÖµ¸²¸Ç½âÎö
JavaÐéÄâ»úÔÚÿ¸ötryÓï¾ä¿éºÍÓëÆäÏà¹ØµÄcatch×Ó¾äµÄ½áβ
´¦¶¼»á“µ÷ÓÔfinally×Ó¾äµÄ×ÓÀý³Ì¡£Êµ¼ÊÉÏ£¬finally×Ó¾äÔÚ·½·¨ÄÚ²¿µÄ±íÏÖºÜÏó“΢ÐÍ×ÓÀý³Ì”¡£finally×Ó¾äÕý³£½áÊøºó£Ö¸µÄÊÇfinally×Ó¾äÖÐ×îºóÒ»ÌõÓï¾äÕý³£Ö´ÐÐÍê±Ï£¬²»°üÀ¨Å׳öÒì³££¬»òÖ´ÐÐre ......
¹úÍâÖøÃûjava¼¼Êõ×ÊÁÏÍøÕ¾
¹úÍâÖøÃûjava¼¼Êõ×ÊÁÏÍøÕ¾
http://www.onjava.com
O'ReillyµÄJavaÍøÕ¾. ÿÖܶ¼ÓÐÐÂÎÄÕÂ
http://java.sun.com
¹Ù·½µÄJava¿ª·¢ÕßÍøÕ¾ - ÿÖܶ¼ÓÐÐÂÎÄÕ·¢±í
http://www.developer.com/java
Ó ......