¶Ôjava¼¼ÊõStringµÄ̽ÌÖ
ÒªÀí½â javaÖÐStringµÄÔË×÷·½Ê½£¬±ØÐëÃ÷È·Ò»µã£ºStringÊÇÒ»¸ö·Ç¿É±äÀࣨimmutable£©¡£Ê²Ã´ÊǷǿɱäÀàÄØ£¿¼òµ¥ËµÀ´£¬·Ç¿É±äÀàµÄʵÀýÊDz»Äܱ»Ð޸ĵģ¬Ã¿¸öʵÀýÖаüº¬µÄÐÅÏ¢¶¼±ØÐëÔÚ¸ÃʵÀý´´½¨µÄʱºò¾ÍÌṩ³öÀ´£¬²¢ÇÒÔÚ¶ÔÏóµÄÕû¸öÉú´æÖÜÆÚÄڹ̶¨²»±ä¡£javaΪʲôҪ°ÑStringÉè¼ÆÎª·Ç¿É±äÀàÄØ£¿Äã¿ÉÒÔÎÊÎÊ james Gosling £º£©¡£µ«ÊǷǿɱäÀàȷʵÓÐ×Å×ÔÉíµÄÓÅÊÆ£¬Èç״̬µ¥Ò»£¬¶ÔÏó¼òµ¥£¬±ãÓÚά»¤¡£Æä´Î£¬¸ÃÀà¶ÔÏó¶ÔÏó±¾ÖÊÉÏÊÇḬ̈߳²È«µÄ£¬²»ÒªÇóͬ²½¡£´ËÍâÓû§¿ÉÒÔ¹²Ïí·Ç¿É±ä¶ÔÏó£¬ÉõÖÁ¿ÉÒÔ¹²ÏíËüÃǵÄÄÚ²¿ÐÅÏ¢¡££¨Ïê¼û ¡¶Effective java¡·item 13£©¡£StringÀàÔÚjavaÖб»´óÁ¿ÔËÓã¬ÉõÖÁÔÚclassÎļþÖж¼ÓÐÆäÉíÓ°£¬Òò´Ë½«ÆäÉè¼ÆÎª¼òµ¥Çá±ãµÄ·Ç¿É±äÀàÊDZȽϺÏÊʵġ£
Ò»¡¢´´½¨¡£
ºÃÁË£¬ÖªµÀStringÊǷǿɱäÀàÒÔºó£¬ÎÒÃÇ¿ÉÒÔ½øÒ»²½Á˽âStringµÄ¹¹Ô췽ʽÁË¡£´´½¨Ò»¸öStirng¶ÔÏó£¬Ö÷Òª¾ÍÓÐÒÔÏÂÁ½ÖÖ·½Ê½£º
java ´úÂë
String str1 = new String("abc");
Stirng str2 = "abc";
ËäÈ»Á½¸öÓï¾ä¶¼ÊÇ·µ»ØÒ»¸öString¶ÔÏóµÄÒýÓ㬵«ÊÇjvm¶ÔÁ½ÕߵĴ¦Àí·½Ê½ÊDz»Ò»ÑùµÄ¡£¶ÔÓÚµÚÒ»ÖÖ£¬jvm»áÂíÉÏÔÚheapÖд´½¨Ò»¸öString¶ÔÏó£¬È»ºó½«¸Ã¶ÔÏóµÄÒýÓ÷µ»Ø¸øÓû§¡£¶ÔÓÚµÚ¶þÖÖ£¬jvmÊ×ÏÈ»áÔÚÄÚ²¿Î¬»¤µÄstrings poolÖÐͨ¹ýStringµÄ equels ·½·¨²éÕÒÊǶÔÏó³ØÖÐÊÇ·ñ´æ·ÅÓиÃString¶ÔÏó£¬Èç¹ûÓУ¬Ôò·µ»ØÒÑÓеÄString¶ÔÏó¸øÓû§£¬¶ø²»»áÔÚheapÖÐÖØÐ´´½¨Ò»¸öеÄString¶ÔÏó£»Èç¹û¶ÔÏó³ØÖÐûÓиÃString¶ÔÏó£¬jvmÔòÔÚheapÖд´½¨ÐµÄString¶ÔÏ󣬽«ÆäÒýÓ÷µ»Ø¸øÓû§£¬Í¬Ê±½«¸ÃÒýÓÃÌí¼ÓÖÁstrings poolÖС£×¢Ò⣺ʹÓõÚÒ»ÖÖ·½·¨´´½¨¶ÔÏóʱ£¬jvmÊDz»»áÖ÷¶¯°Ñ¸Ã¶ÔÏó·Åµ½strings poolÀïÃæµÄ£¬³ý·Ç³ÌÐòµ÷Óà StringµÄintern·½·¨¡£¿´ÏÂÃæµÄÀý×Ó£º
java ´úÂë
String str1 = new String("abc"); //jvm ÔÚ¶ÑÉÏ´´½¨Ò»¸öString¶ÔÏó
//jvm ÔÚstrings poolÖÐÕÒ²»µ½ÖµÎª“abc”µÄ×Ö·û´®£¬Òò´Ë
//ÔÚ¶ÑÉÏ´´½¨Ò»¸öString¶ÔÏ󣬲¢½«¸Ã¶ÔÏóµÄÒýÓüÓÈëÖÁstrings poolÖÐ
//´Ëʱ¶ÑÉÏÓÐÁ½¸öString¶ÔÏó
Stirng str2 = "abc";
if(str1 == str2){
&nb
Ïà¹ØÎĵµ£º
Static Factory Methods
Four Advantages:
1) have names
2) not required to create a new object each time they are invoked
3) return an object of any subtype of their return type
4) reduce the verbosity of creating parameterized type instances.(for example: newInstance() method) ......
±¾ÎÄ×ªÔØ×ÔÀîÐ÷³ÉÀÏʦµÄ±Ê¼Ç£¬¸ÐлÀîÀÏʦ£¡
WebÓ¦ÓÃÖбØÐëÔÚ¿Í»§¶Ë¶ÔÊäÈëÐÅÏ¢½øÐÐÑéÖ¤£¬Èç¹û·¢ÏÖ´íÎó¿ÉÒÔ¼°Ê±¶ÔÓû§½øÐз´À¡£¬Ò²²»Óõȵ½·þÎñÆ÷·¢ÏÖÖ®ºóÔÙ·´À¡£¬Ò»·½ÃæÊǼõÉÙÁËÓû§µÄµÈ´ýʱ¼ä£¬ÁíÒ»·½Ãæ¼õÉÙ²»±ØÒªµÄ½»»¥¹ý³Ì¡£±¾½ÚÄÚÈݽéÉÜÈçºÎʹÓÃJavaScriptÍê³É¿Í»§¶ËµÄÑéÖ¤¡£
JavaScriptÓïÑÔ
ÔÚWebÓ¦ÓÃÖÐÐèÒªÔÚ¿Í»§¶Ë ......
2009-12-01 12:06:43
JUnit
JUnitÊÇÓÉ Erich Gamma ºÍ Kent Beck ±àдµÄÒ»¸ö»Ø¹é²âÊÔ¿ò¼Ü£¨regression testing framework£©¡£Junit²âÊÔÊdzÌÐòÔ±²âÊÔ£¬¼´Ëùν°×ºÐ²âÊÔ£¬ÒòΪ³ÌÐòÔ±ÖªµÀ±»²âÊÔµÄÈí¼þÈçºÎ£¨How£©Íê³É¹¦ÄܺÍÍê³ÉʲôÑù£¨What£©µÄ¹¦ÄÜ¡£JunitÊÇÒ»Ì׿ò¼Ü£¬¼Ì³ÐTestCaseÀ࣬¾Í¿ÉÒÔÓÃJunit½øÐÐ×Ô¶¯²âÊÔÁË¡ ......
Devoxx ´ó»á½áÊøÔÚ¼¸Ììǰ½áÊøÁË£¬Ò»Î»Óë»áÕ߶Դ˴δó»áµÄÖØÒªÄÚÈݽøÐÐÁË×ܽᣬËûÌáµ½Java 7µÄÖ÷Òª±ä»¯ÈçÏ£º
¡¡¡¡1.¶ÔcollectionsµÄÖ§³Ö
¡¡¡¡Java´úÂë
List<String> list = new ArrayList<String>();
list.add("item");
String item = list.get(0);
......
package innerClass.test;
public class InheritTest
{
public static void main(String[] args)
{
Person p = new Person("LMS");
p.show();
  ......