Effective Java ѧϰ±Ê¼Ç£¨3£©
ÔÚʵÏÖsingletonģʽʱ£¬ÎÒÃÇÓÐÒÔϼ¸ÖÖ·½·¨¡£ 1. public static final ×ֶμÓÉÏprivate µÄ¹¹Ô캯Êý¡£ public class Singleton{
public static final Singleton INSTANCE = new Singleton();
private Singleton() { ... }
} ÕâÖÖ·½·¨¼òµ¥£¬ÆäÖеÄ×Ö¶ÎÈÃÈËһĿÁËÈ»¾ÍÖªµÀÕâ¸öÀàÊÇSingletonģʽ£¬ÓÃfinal¹Ø¼ü×ÖÈ·±£Õâ¸ö±äÁ¿ÔÚ³õʼ»¯ºó¾Í²»»áÔÙ±»¸ü¸Ä£¬µ«Òª×¢ÒâµÄÊÇСÐÄ·ÀÖ¹ÉÙÊý±ðÓÐÓÃÐĵijÌÐòʹÓÃAccessibleObject.setAccessibleÀ´·ÃÎÊ˽Óй¹Ô캯Êý£¬Õâʱ¿ÉÒÔÔÚ˽Óй¹Ô캯ÊýÖÐÅжϵ±´´½¨µÚ¶þ¸öʵÀýµÄʱºòÅ׳öÒ»¸öÒì³£¡£ 2. private static final ×ֶμÓÉÏprivate µÄ¹¹Ô캯ÊýÔÙ¼ÓÉÏpublic ¾²Ì¬¹¤³§º¯Êý public class Singleton{
private static final Singleton INSTANCE = new Singleton();
private Singleton() { ... }
public static Singleton getInstance{}{return INSTANCE;} } ÕâÖÖ·½Ê½²»Óõ£ÐÄÐÔÄÜÎÊÌ⣬ÒòΪÏÖÔÚµÄJVM»á°Ñ¾ø´ó¶àÊýµÄ¾²Ì¬¹¤³§º¯Êý¸ÄΪÄÚÁª¡£´ËÍ⣬ÕâÖÖ·½·¨»¹¿ÉÒÔÔÚ²»¸Ä±äAPIµÄÇé¿ö϶Էµ»ØÖµ½øÐиı䣬¼´ÔÚÒÔºó¸ù¾ÝÐèÒªÊÇ·ñ·µ»ØµÚ¶þ¸öʵÀý£¬»òÊÇÿ¸öÏß³ÌÒ»¸öʵÀý¡£ ¶ÔÓÚÒÔÉÏÁ½ÖÖ·½·¨ÔÚ´®Ðл¯µÄʱºòҪעÒ⣬²»Äܽö½öÖ»¼ÓÉÏimplements Serializable½Ó¿Ú£¬ÕâÑù»áµ¼ÖÂÿ´Î·´ÐòÁл¯µÄʱºò´´½¨Ò»¸öжÔÏó£¬ÕâÑù¾Í²»ÊÇÕæÕýµÄsingletonÁË£¬½â¾öÕâ¸öÎÊÌâµÄ·½·¨ÊÇÔÚÉùÃ÷µÄʱºò¶Ôÿһ¸öfinal×ֶμÓÉÏtransient¹Ø¼ü×Ö£¬È»ºóÔÙʵÏÖÒ»¸öreadResolve·½·¨¡£ private Object readResolve() {
return INSTANCE;
} ¶ÔÓÚjava 1.5ºóµÄ°æ±¾£¬ÊµÏÖsingletonģʽ×îºÃµÄ·½·¨ÊÇÓÃö¾Ù¡£
public enum Singleton {
INSTANCE; } ÕâÖÖ·½·¨Ã»ÓÐÉÏÃæËµµÄȱµã£¬ÊÇ×îÓŵķ½·¨¡£
Ïà¹ØÎĵµ£º
ÎÄÕÂÓÃʵÀý´úÂëչʾÁËJavaÖжàÏ̷߳ÃÎʹ²Ïí×ÊÔ´
ʱÏß³Ìͬ²½
µÄÖØÒªÐÔ¡£
·Ö±ðͨ¹ýÔÚÁ½¸öÏß³ÌÖÐͬʱ·ÃÎÊ(µ÷ÓÃget_id*·½·¨)¾¹ýͬ²½´¦Àí(lock¼°Synchronized)µÄ¹²Ïí×ÊÔ´(tmp)¼°Î´¾¹ýͬ²½´¦ÀíµÄ¹²Ïí×ÊÔ´(tmp)À´ËµÃ÷ͬ²½´¦ÀíµÄµÄ×÷Óá£
mainÖзÖÁ½²¿·Ö:
1£©Ç°°ë²¿·Ö£¬non-synchronization²¿·ÖÓÃÀ´²âÊÔûÓÐ×öͬ²½´¦ÀíµÄ´úÂë ......
1.Java ¼¯ºÏ¿ò¼Üͼ
¡¡¡¡-¼¯ºÏ½Ó¿Ú£º6¸ö½Ó¿Ú£¨¶ÌÐéÏß±íʾ£©£¬±íʾ²»Í¬¼¯ºÏÀàÐÍ£¬ÊǼ¯ºÏ¿ò¼ÜµÄ»ù´¡¡£
¡¡¡¡-³éÏóÀࣺ5¸ö³éÏóÀࣨ³¤ÐéÏß±íʾ£©£¬¶Ô¼¯ºÏ½Ó¿ÚµÄ²¿·ÖʵÏÖ¡£¿ÉÀ©Õ¹Îª×Ô¶¨Ò弯ºÏÀà¡£
¡¡¡¡-ʵÏÖÀࣺ8¸öʵÏÖÀࣨʵÏß±íʾ£©£¬¶Ô½Ó¿ÚµÄ¾ßÌåʵÏÖ¡£
¡¡¡¡2.JavaÈÝÆ÷Àà½éÉÜ
¡¡¡¡¢Ù JavaÈÝÆ÷Àà¶¼¿ÉÒÔ×Ô¶¯µØµ÷Õû×Ô¼ºµÄ³ß´ ......
1.PaginationTable.java
package com.sinoest.train.common;
import java.util.List;
/**
* ·ÖÒ³±í
* @author ÀîÒ×烜-ÐÞ¸Ä
* 2009-6-17
*/
public class PaginationTable {
private List<?> entryList;//> Êý¾Ý
private int totalNumOfRows;// ×ÜÐÐÊý
private int rowsPerPage = 10;// ......
JavaÐéÄâ»úµÄÄÚ²¿Ìåϵ½á¹¹Ò²ÐíºÜÉÙÓÐÈËÈ¥¹ØÐÄ£¬ÒòΪ¶ÔÓÚJava³ÌÐòÔ±À´Ëµ£¬Ò»°ãÖ»ÐèÒª¸úAPI´ò½»µÀ¾Í¿ÉÒÔÁË¡£ÕâЩÌåϵ½á¹¹Ö»ÊÇJavaÐéÄâ»úÄÚ²¿µÄ½á¹¹¶øÒÑ¡£µ«ÊÇÈç¹ûÀí½âÁËÆäÄÚ²¿½á¹¹£¬¶ÔÓÚÎÒÃÇ¿ª·¢ÏîÄ¿£¬ÒÔ¼°ÅųýϵͳÖеÄÏà¹Ø¹ÊÕÏÊÇÓɰïÖúµÄ¡£
ÏÈ¿´¿´×ÜÌå½á¹¹Í¼£¬ÈçÏ£º
¸÷²¿·ÖµÄÖ÷Òª¹¦ÄÜ·Ö±ðÊÇ£º
1. Àà×°ÔØ×Óϵͳ:¸ºÔðJavaÀ ......
Java6 ½Å±¾ÒýÇæ(ÓÃJavaµ÷ÓÃJS½Å±¾)µ÷ÓÃjs
import java.io.FileNotFoundException;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
&n ......