Effective Java ѧϰ±Ê¼Ç (11)
CloneÕâ¸ö·½·¨ºÜ¼¦Àߣ¬ÔÒòÊÇÒòΪËüÊÇÊܱ£»¤µÄ(protected)£¬Æä¶þCloneÕâ¸ö·½·¨ÊÇ¿ÉÑ¡µÄ£¬¼´ÓпÉÄÜÀàûÓÐÌṩÕâ¸ö·½·¨¡£
cloneûÓе÷Óù¹Ô캯Êý£¬¶øÇÒÈç¹û¸¸ÀàûÓÐʵÏÖcloneµÄ»°£¬×ÓÀàÓÀÔ¶Ò²²»¿ÉÄÜÕýȷʵÏÖclone.
×ÜÖ®£¬cloneÊǸöºÜÍ·Í´µÄº¯Êý£¬Èç¹ûÒªÕýȷʵÏÖ£¬±ØÐ뿼Âǵ½É±´µÄÇé¿ö£¬·ñÔò±»¿Ë¡³öÀ´µÄ¶ÔÏó¾Í²»ÊǶÀÁ¢µÄ£¬È磬Ҫдһ¸ö¶ÑÕ»ÀàµÄ¿Ë¡º¯Êý£¬ÕýÈ·µÄʵÏÖ·½·¨ÊÇ£º
@Override public Stack clone() {
try {
Stack result = (Stack) super.clone();
result.elements = elements.clone();
return result;
} catch (CloneNotSupportedException e) {
throw new AssertionError();
}
}
ҪעÒâ¶ÔÓÚfinal×ֶβ»ÄÜÕý³£¹¤×÷£¬clone½á¹¹Óë¿É±ä¶ÔÏóµÄfinal×Ö¶ÎÊDz»¼æÈݵġ£
¶ÔÓÚÁÐÉ¢Êý×飬½ö½öµÝ¹éµ÷ÓõÄclone·½·¨»¹²»¹»£¬¿´ÊéÖÐÕýÈ·µÄ×ö·¨£º
public class HashTable implements Cloneable {
private Entry[] buckets = ...;
private static class Entry {
final Object key;
Ïà¹ØÎĵµ£º
×öB/SµÄÆóÒµ¼¶Ó¦Ó㬿ÉÄÜ»áÓöµ½ÕâÑùÒ»ÖÖÇé¿ö£¬¿Í»§µÄÎĵµ£¨wordµÈ£©±£´æÔÚÒ»¸öĿ¼Ï£¬ÐèҪͨ¹ýµÇ¼²ÅÄÜ¿´µ½£¬µ«ÊÇ
ÕâЩÓÖ¶¼ÊǾ²Ì¬µØÖ·£¬ËùÒÔÄÜÖ±½ÓÊäÈëµØÖ·¾Í¿ÉÒÔ·ÃÎʵ½Îĵµ¡£Õâʱ¾ÍÐèÒªÓõ½Filter¹ýÂËÆ÷ÁË¡£
Servlet
APIµÄ2.3°æ±¾µÄÒ»¸öй¦ÄܾÍÊÇÄܹ»ÎªservletºÍJSPÒ³Ãæ¶¨Òå¹ýÂËÆ÷¡£¹ýÂËÆ÷ÌṩÁËijЩÔçÆÚ·þÎñÆ÷Ë ......
1.Base64
¼ÓÃÜ£ºorg.apache.commons.codec.binary.Base64.encodeBase64(byte[] binaryData)
½âÃÜ£ºorg.apache.commons.codec.binary.Base64.decodeBase64(byte[] base64Data)
2.Md5
¼ÓÃÜ£ºorg.apache.commons.codec.digest.md5Hex(byte[] data)
½âÃÜ£ºÎÞ
3.DES£¨des-ecb,3des,des-cbc,cb ......
JAVAÖеÄÖ÷º¯ÊýÊÇÎÒÃÇÔÙÊìϤ²»¹ýµÄÁË£¬ÏàÐÅÿ¸öѧϰ¹ýJAVAÓïÑÔµÄÈ˶¼Äܹ»ÊìÁ·µØÐ´³öÕâ¸ö³ÌÐòµÄÈë¿Úº¯Êý£¬µ«¶ÔÓÚÖ÷º¯ÊýΪʲôÕâôд£¬ÆäÖеÄÿ¸ö¹Ø¼ü×Ö·Ö±ðÊÇʲôÒâ˼£¬¿ÉÄܾͲ»ÊÇËùÓÐÈ˶¼ÄÜÇáËɵشð³öÀ´µÄÁË¡£ÎÒÒ²ÊÇÔÚѧϰÖÐÅöµ½ÁËÕâ¸öÎÊÌ⣬ͨ¹ýÔÚÍøÉÏËÑË÷×ÊÁÏ£¬²¢¼ÓÉÏ×Ô¼ºµÄʵ¼ùÖÕÓÚÓÐÁËÒ»µãÐĵ㬲»¸Ò±£Áô£¬Ð´³öÀ´Óë´ó¼Ò ......
1. µ±Ä³¸öÀàÖеÄij¸ö·½·¨Öеľֲ¿±äÁ¿µÄÃû×ÖÓë¸ÃÀàÖеÄÈ«¾Ö±äÁ¿µÄÃû×ÖÏàͬʱ ¸ÃÈ«¾Ö±äÁ¿½«±»Òþ²Ø£»´Ëʱ Èç¹ûÏëÔڸ÷½·¨ÖÐʹÓÃÈ«¾Ö
±äÁ¿ ±ØÐëʹÓùؼü×Ö£¨this.È«¾Ö±äÁ¿Ãû£©
2. µ±this¹Ø¼ü×Ö³öÏÖÔÚÀàµÄʵÀý·½·¨ÖÐʱ£¬´ú±íÕýÔÚµ÷Óø÷½·¨µÄµ±Ç°¶ÔÏó
3.  ......
1. import java.text.DateFormat;
2. import java.text.ParseException;
3. import java.util.Date;
4.
5. /**
6. * @description 計ËãÁ½¸öÈÕÆÚÏà²îµÄÌìÊý
7. * @author ZhouJingxian
8. *
9. */
10. public class CountDate {
11.
12. ......