Effective Java ѧϰ±Ê¼Ç(15)
Ò»¸ö²»¿É¸Ä±ä£¨immutable£©µÄÀ࣬¹ËÃû˼Ò壬¾ÍÊÇÆäʵÀý²»Äܸı䣬¼´ÀïÃæËùÓеÄÐÅÏ¢ÔÚ´´½¨Ê±¾Í¸³Öµ£¬ÔÚÆäÉúÃüÖÜÆÚÖÐÆäÖµ²»±ä¡£
ʹÓò»¿É¸Ä±äµÄÀàµÄÓŵãÔÚÓÚ£¬Éè¼Æ¼òµ¥£¬Ò×ÓÚʵÏÖºÍʹÓ㬾ßÌåÀ´½²£¬ËüµÄ״̬»úºÜ¼òµ¥£¬Ö»ÓÐÒ»¸ö״̬¡£ËüÊÇḬ̈߳²È«£¬Äܹ»×ÔÓɵı»¹²Ïí£¬Äܹ»Í¨¹ý¾²Ì¬¹¤³§Ä£Ê½¾¡¿ÉÄܸ´ÓÃÒѾ´´½¨³öÀ´µÄ¶ÔÏó£¬Ò²²»ÓÃΪËüдclone»òÊÇ¿½±´¹¹Ô캯Êý£¬²»¿É¸Ä±äµÄÀàÒ²±ãÓÚά»¤£¬ÊÇϵͳµÄÁ¼ÐÔ»ùʯ¡£
ÆäΨһµÄȱµã¾ÍÊÇ£¬Ëü±ØÐëΪ²»Í¬µÄÖµ·Ö±ð´´Ô첻ͬµÄ¶ÔÏó¡£
ʹһ¸öÀàΪimmutable£¬Òª×öµ½ÒÔϼ¸µã¡£
1.²»ÒªÌṩÈκοÉÒÔÐ޸ĶÔÏóÖÐÊý¾ÝµÄ·½·¨¡£
2.È·±£´ËÀ಻»á±»¼Ì³Ð¡£Õâ¸ö¿ÉÒÔ·ÀÖ¹×ÓÀ಻СÐĶԸ¸ÀàÖеÄÊý¾Ý½øÐиü¸Ä¡£
3.ʹËùÓеÄ×Ö¶ÎΪfinal.
4.ʹËùÓеÄ×Ö¶ÎΪprivate.
5.È·±£ËùÓÐ×Ö¶ÎÖеĿɱ»¸Ä±äµÄ¶ÔÏóµÄÒýÓò»±»Íâ½ç»ñµÃ¡£
µ«Òª×¢ÒâµÄµ±ÊµÏÖÐòÁл¯µÄʱºò£¬Èç¹ûÒ»¸ö²»¿É¸Ä±äÀàÖаüº¬¿É¸Ä±äÀàµÄÒýÓ㬾ͱØÐëÌṩһ¸öÏÔʽµÄreadObject»òreadResolve£¬»òʹÓÃObjectOutputStream.writeUnsharedºÍOjbectInputStream.readUnshared·½·¨¡£·ñÔò¾Í¹¥»÷Õ߾ͿÉÄÜ´´½¨Ò»¸ö¿ÉÒԸıäµÄʵÀý¡£
×ܽ᣺³ý·ÇÓÐ×ã¹»µÄÀíÓÉ£¬Ó¦¸Ã½«ÀàÉè¼ÆÎªimmutable¡£
Èç¹ûÒ»¸öÀ಻ÄÜÉè¼Æ³Éimmutable£¬ÄÇô¾¡Á¿¼õÉٿɸıäµÄ×ֶΡ£
Ïà¹ØÎĵµ£º
Ò»¡¢
ΪʲôҪ
Web
״̬¹ÜÀí
¶ÔÓÚÿ¸öÈÝÆ÷¶øÑÔÿ¸öÇëÇó¶¼Ï൱ÓÚÒ»¸öеĿͻ§£¬ÒòΪµ±·þÎñÆ÷Éú³É
Response
·µ»Øµ½¿Í»§¶Ë£¬ÔÚ¿Í»§¶ËÏÔʾ³öÀ´ºóÏà¶ÔÓ¦µÄ
Socket
¾Í»á¹Ø±Õ£¬ËùÒÔ
HTTP
ÐÒéÊǸöÎÞ״̬µÄÐÒ飬Ëû²»Äܱ£´æµ±Ç°Óû§µÄÐÅÏ¢¡£
¶þ¡¢
ʵÏÖ״̬¹ÜÀíµÄ·½Ê½
1.
ÔÚÍø ......
Ò»¡¢
web
µÄÈýÖÖ×÷ÓÃÓò
ServletContext(
ÉÏÏÂÎÄ
)
£ºÕû¸ö
web
Ó¦ÓóÌÐò£¬Ï̲߳»°²È«
HttpSession(
ȇȡ
)
£ºÒ»¸ö»á»°½»»¥¹ý³Ì
ServletRequest(
ÇëÇó
)
£ºÒ»´ÎÇëÇó¹ý³Ì
ÊôÐÔ²Ù×÷·½·¨£º
void setAttribute(String,Object)
......
Ò»¡¢
ʲôÊǹýÂËÆ÷
´Ó¼¼ÊõÉϽ²¹ýÂËÆ÷ÊÇÒ»¸öÖмä×é¼þ£¬ÓÃÓÚÀ¹½ØÔ´Êý¾ÝºÍÄ¿µÄÊý¾Ý¼äµÄÏûÏ¢£¬²¢ÇÒ¹ýÂ˶þÕßÖ®¼ä´«µÝµÄÊý¾Ý¡£¶ÔÓÚ
WEB
Ó¦ÓóÌÐò£¬¹ýÂËÆ÷ÊÇפÁôÔÚ
WEB
·þÎñÆ÷ÉϵÄ
WEB
×é¼þ¡£¶ÔÓÚ¿Í»§¶ËºÍÄ¿±ê×ÊÔ´¶øÑÔ¹ýÂËÆ÷ÊÇ͸Ã÷µÄ£¬ËûÃÇÊDz»ÖªµÀ·¢ËÍÀ´µÄÊý¾ÝÊÇ·ñ¾¹ý¹ýÂËÆ÷µÄ´¦Àí¡£
¶þ¡¢
¹ýÂËÆ÷µÄ×÷ÓÃ
¹ýÂËÆ÷Ï൱ÓÚÒ ......
Ö±½ÓÑ¡ÔñÅÅÐòËã·¨£º´Ó´ýÅÅÐòµÄÊý¾ÝÔªËØ¼¯ºÏÖÐѡȡ×îСµÄÔªËØ·Åµ½ÔʼÊý¾ÝµÄµÚÒ»¸öÔªËØµÄλÖÃÉÏ¡£È»ºó²»°üÀ¨µÚÒ»¸öÔªËØµÄÊý¾ÝÔªËØ¼¯ºÏÖÐÕÒµ½×îСµÄÔªËØ·Åµ½´Ë¼¯ºÏÖУ¬ÒÀ´ÎÀàÍÆ£¬¼´¿ÉÍê³ÉÅÅÐò¡£
Ë㷨ʵÏÖÈçÏ£º
/**
* Ö±½ÓÑ¡ÔñÅÅÐò
* @param a ÓÃÓÚÅÅÐòµÄÊý×é
* */
public void ......
public class Test {
public static void main(String aa[]) {
if (System.getProperty("os.name").equals("Linux")) {
System.out.println("linux");
} else if (System.getProperty("os.name").equals("Windows XP")) {
System.out.println("win ......