ÈȵãÌÖÂÛ£ºJava±à³Ì·ç¸ñµÄ¸Ä±ä
×î½üStephan SchmidtÔÚ²©¿ÍÖз¢±íÁËÌâΪ¡¶ÏÂÒ»´úJava±à³Ì·ç¸ñ¡·µÄÎÄÕ£¬²ûÊöÁËËûÑÛÖÐJava±à³Ì·ç¸ñµÄ¸Ä±ä£¬ÒÔ¼°Î´À´µÄ×ßÏò£ºÐí¶à¹«Ë¾ºÍ¿ª·¢ÈËÔ±ÕýÔÚ´ÓJavaתÏòÆäËû±à³ÌÓïÑÔ£ºRuby¡¢Python¡¢Groovy¡¢Erlang»òScalaµÈµÈ¡£²»¹ýÄã¿ÉÄÜ×ö²»µ½ÕâÒ» µã¡£¼´±ãÈç´Ë£¬ÄãÒ²¿ÉÒԸıäÄãµÄ±à³Ì·ç¸ñ£¬»ñÈ¡ÕâЩÐÂÓïÑÔµÄÓÅÊÆ¡£ÊÂʵÉÏ£¬ÔÚ¹ýÈ¥µÄ15ÄêÖУ¬Java±à³Ì·ç¸ñÒ²ÒѾÓÐÃ÷ÏԱ仯ÁË¡£
StephanÔÚÎÄÕÂÖÐÌá³öÁËÒÔϼ¸µã£º
¾¡¿ÉÄܵرê×¢final£ºÈÃËùÓж«Î÷²»¿É±ä£¬°Ñ±äÁ¿±êΪfinal¿ÉÒÔ×èÖ¹¸Ä±äËüµÄÖµ¡£ºÜ¶àʱºò£¬ÖØÐÂΪ±äÁ¿¸³Öµ»áÒýÈëbug£¬ÄãÓ¦¸ÃʹÓÃеıäÁ¿¡£³ý´ËÖ®Í⣬final¿ÉÒÔÌá¸ß´úÂëµÄ¿É¶ÁÐÔ¡£ÎÒÕë¶ÔÕâ¸ö»°Ì⻹д¹ýһƪÎÄÕ£º¡¶JavaÖÐËùÓбäÁ¿¶¼Ó¦¸ÃÊÇfinalµÄ¡·
ûÓÐsetter£ºÐí¶àJava³ÌÐòÔ±»á×ÔÈ»¶øÈ»µØÎªÀàÖÐËùÓеÄ×ֶμÓÉÏsetter¡£Ë¼¿¼Ò»Ï£¬ÕæµÄÿ¸ö×ֶζ¼ÐèÒªÐÞ¸ÄÂ𣿸üºÃµÄ·½·¨ÊÇ´´½¨°üº¬¸Ä±äºó״̬µÄжÔÏó¡£´ËÍ⣬ҲÊÔ×ÅÈ¥³ýgetter£¬ÎÒÃÇÓ¦¸Ã×ñÑ“Tell, don’t ask”µÄ˼Ïë¡£
±ÜÃâʹÓÃÑ»·À´²Ù×÷List£º´Óº¯Êýʽ±à³ÌÄÇÀï»ñµÃµÄ¾Ñ飬ѻ·²¢²»ÊǽøÐм¯ºÏ²Ù×÷×îºÃ·½·¨¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔʹÓÃGoogle CollectionsÌṩµÄ¹ýÂ˹¦ÄÜ¡£
Predicate canDrinkBeer = new Predicate() {
public boolean apply(HasAge hasAge) {
return hasAge.isOlderThan( 16 );
}
};
List<Person> beerDrinkers = filter(persons, canDrinkBeer);
ʹÓõ¥ÐдúÂ룺JavaÊÇÒ»ÃÅ·±ÔÓ£¨noisy£©µÄÓïÑÔ£¬ÎÒÃÇÓ¦¸Ã±àд¸ü¾«È·µÄ´úÂë¡£³¢ÊÔ½«´úÂëдΪһÐС£ÀýÈ磺
public int add(int a, int b) { return a + b; }
ʹÓôóÁ¿½Ó¿Ú£ºÁìÓòÇý¶¯Éè¼ÆÒѾ´óÐÐÆäµÀ£¬Ò»¸öÓ¦¸Ã²ð·ÖΪ¶àÖÖ“½ÇÉ«”£¬¼´ÊµÏÖ¶àÖÖ½Ó¿Ú£¬Ìá¸ß¸´Óó̶ȡ£·½·¨Ó¦¸ÃÃæÏò“½ÇÉ«”£¬¶ø²»ÊÇÃæÏòÌØ¶¨µÄÀà¡£ÎÒÔÚ¡¶²»ÒªÔÚJavaÖÐʹÓÃString¡·Ò»ÎÄÖÐÌÖÂÛÁ˸ü¶àÕâ·½ÃæµÄÄÚÈÝ¡£
ʹÓÃErlang·ç¸ñµÄ²¢·¢£ºJavaµÄ²¢·¢ÌØÐÔ£¨ÈçlockºÍsynchronized£©¹ýÓڵͶˣ¬ÄÑÒÔʹÓá£Erlang·ç¸ñµÄ²¢·¢ÊÇÒ»ÖÖ¸üºÃµÄ×ö·¨¡£Javaƽ̨ÉÏÒѾÓÐÁËAkkaºÍActorom¡£´ËÍ⣬Ҳ¿ÉÒÔʹÓÃjava.util.concurrentÖеÄJoin/ForkºÍÊý¾Ý½á¹¹½øÐбà³Ì¡£
ʹÓÃFluent Interface£ºFluent Interface¿ÉÒÔʹ´úÂë¸ü¶Ì£¬¸üÈÝÒ×±àд¡£Google CollectionsÖеÄMapMakerÊǸö²»´íµÄʾÀý£º
ConcurrentMap graphs = new MapMaker()
.concurrencyLevel(32)
.softKeys()
.weakValues()
.expiration(3
Ïà¹ØÎĵµ£º
Javaѧϰ´ÓÈëÃŵ½¾«Í¨
Ò»¡¢ JDK (Java Development Kit)
JDKÊÇÕû¸öJavaµÄºËÐÄ£¬°üÀ¨ÁËJavaÔËÐл·¾³£¨Java Runtime Envirnment£©£¬Ò»¶ÑJava¹¤¾ßºÍJava»ù´¡µÄÀà¿â(rt.jar)¡£²»ÂÛʲôJavaÓ¦Ó÷þÎñÆ÷ʵÖʶ¼ÊÇÄÚÖÃÁËij¸ö°æ±¾µÄJDK¡£Òò´ËÕÆÎÕJDKÊÇѧºÃJavaµÄµÚÒ»²½¡£×îÖ÷Á÷µÄJ ......
Ò»£º×¼±¸ www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
¶þ£º±àÒëÔ´ÎļþµÃµ½jar°ü ʹÓÃAnt
1. build vserv-tcpip-0.9.2-src
ÔÚvserv-tcpip-0.9.2Ŀ¼ÏÂÃæ½¨Ò»¸ötestsĿ¼£¬È»ºóÔÚcmd´°¿ÚϽøÈë ......
ÎÒ¸öÈËÀí½â³õʼ»¯ºÍÇåÀíµÄ¹ØÏµ¾ÍÊdzԷ¹ºÍÉϲÞËù£¬ÕýÊÇÓÐÁ˳õʼ»¯µÄ¶ÔÏó£¬ÎÒÃDzÅÄÜʹÓÃÇåÀí¡£µ«ÊÇΪʲôҪÇåÀíÄØ£¿ÏëÏóÒ»ÏÂÒ»¸öÈ˹â³Ô²»À£¬ÊǸöʲôÇé¿ö£¿£º£©ÄѵÀÎÒÃǵijÌÐòÒ²ÒªÏñ³Ô·¹Ò»Ñù¹â²úÉú¶ÔÏ󣬶ø²»È¥ÇåÀíʹÓÃÍê±ÏµÄ¶ÔÏó£¿ÈÎÓÉÎÒÃǵĶÔÏó¶Ñ»ýÈçɽ£¬Õ¼ÓÃϵͳ×ÊÔ´£¿
ÒÔ¹¹Ô캯ÊýÈ·±£³õʼ»¯µÄ½øÐÐ
&nb ......
JavaµÄºËÐÄAPIÊǷdz£ÅÓ´óµÄ,Õâ¸ø¿ª·¢ÕßÀ´Ëµ´øÀ´Á˺ܴóµÄ·½±ã£¬¾³£ÈËÓÐÆÀÂÛ,javaÈóÌÐòÔ±±äɵ¡£
µ«ÊÇһЩÄÚÈÝÎÒÈÏΪÊDZØÐëÕÆÎյ쬷ñÔò²»¿ÉÒÔÊìÁ·ÔËÓÃjava£¬Ò²²»»áʹÓþͺÜÄѰìÁË¡£
1¡¢java.lang°üϵÄ80£¥ÒÔÉϵÄÀàµÄ¹¦ÄܵÄÁé»îÔËÓá£
2¡¢java.util°üϵÄ80£¥ÒÔÉϵÄÀàµÄÁé»îÔËÓã¬ÌرðÊǼ¯ºÏÀàÌåϵ¡¢Õý¹æ±í´ïʽ¡¢Ê±¼ä¡ ......