Java鐨勭瀵嗭細灝嗗簲鐢ㄧ▼搴忕殑璁懼畾瀛樺湪鍝噷? 鎴戜滑緇忓父闇瑕佸皢鎴戜滑鐨勭▼搴忎腑鐨勮瀹氾紝濡傜獥鍙d綅緗紝寮鍚繃鐨勬枃浠訛紝鐢ㄦ埛鐨勯夐」璁懼畾絳夋暟鎹褰曚笅鏉ワ紝浠ュ仛渚跨敤鎴蜂笅涓嬈″紑鍚▼搴忚兘緇х畫浣跨敤榪欎簺鏁版嵁銆?BR>浠ュ墠鎴戜滑閫氬父鐨勫仛娉曟槸浣跨敤Properties綾伙紝瀹冩彁渚涗互涓嬫柟娉? void load(InputStream inStream) void store(OutputStream out, String header) String getProperty(String key, String defaultValue) String getProperty(String key) 榪欎簺鏂規(guī)硶璁╂垜浠緢瀹規(guī)槗鐨勫瓨鍙栬瀹氭暟鎹? 鍙﹀鐨勫姙娉曟槸浣跨敤ResourceBundle榪欎釜綾繪潵鍌ㄥ瓨璁懼畾鏁版嵁錛岀敋鑷蟲湁浜涚▼搴忎綔鑰呬嬌鐢ㄤ竴涓嚜瀹氱粨鏋勭殑鏂囦歡鏉ュ偍瀛樿瀹氭暟鎹?BR>浣嗕笉綆℃庢牱錛屾渶璁╃▼搴忎綔鑰呭ご鐥涚殑鏄細鎴戣灝嗚繖浜涙暟鎹繚瀛樺湪鍝紵 鐜板湪濂戒簡錛孞DK1.4涓烘垜浠彁渚涚殑java.util.prefs鍖咃紝閲岄潰鏈変竴涓狿references綾伙紝鑳借浠ヤ笂鐨勫伐浣滃彉寰楁瀬鍏惰交鏉? 鍐橵B紼嬪簭鐨勪漢甯稿父鐢⊿aveSetting鍑芥暟鍜実etSettging鏉ュ瓨鍙栨敞鍐岃〃涓殑鐢ㄦ埛璁懼畾鏁版嵁銆傝孞ava鐨凱references綾諱篃鎻愪緵浜嗙被浼肩殑鏈哄埗銆?BR>Preferences綾誨湪涓嶅悓鐨勫鉤鍙頒腑鏈変笉鍚岀殑瀹炵幇鏂瑰紡銆傝屽湪Windows騫沖彴涓紝Preferences鏄皢鏁版嵁淇濆瓨鍦ㄦ敞鍐岃〃涓殑錛岃屽湪鍏跺畠騫沖彴涓殑瀹炵幇鎴戝氨涓嶅緱鑰岀煡浜?鎴戝Linux絳夌郴緇熼兘涓嶅お浜嗚В). 浣嗕笉綆℃庢牱錛岄兘鏄氳繃鐩稿悓鐨勬帴鍙f潵浣跨敤鐨勶紝紼嬪簭浣滆呭彲浠ヤ笉綆″疄鐜扮粏鑺傘?BR> 寤虹珛Preferences瀵硅薄 涓轟簡鍖哄垎涓嶅悓鐨勫簲鐢ㄧ▼搴忕殑鍙傛暟欏癸紝鍦ㄥ緩绔婸references鏃惰鎸囧畾涓涓妭鐐硅礬寰勩?BR>Preferences鏄竴涓娊璞$被錛屾彁渚涗簡涓緋誨垪闈欐佹柟娉曞拰鎶借薄鏂規(guī)硶鏉ユ搷浣滃弬鏁伴」: 鎶借薄鏂規(guī)硶: Preferences userData = Preferences.userNodeForPackage(this); Preferences sysData = Preferences.systemNodeForPackage(this); 榪欎袱涓柟娉曟槸浠庢寚瀹氱殑鐗╀歡鎵鍦ㄧ殑鍖?package)榪斿洖涓涓妭鐐硅礬寰勶紝濡倀his鏄痡avax.swing.JComponent,鍒欒繑鍥?javax/swing 闈欐佹柟娉? Preferences userData = Preferences.userRoot().node("/com/sunway/spc"); Preferences sysData = Preferences.systemRoot().node("/com/sunway/spc"); 浠ヤ笂姣忕鏂瑰紡鎻愪緵浜嗕袱濂楁搷浣滄柟娉曘傚叾涓竴濂楁槸鐢ㄦ埛鍙傛暟欏癸紝鍙︿竴濂楁槸緋葷粺鍙傛暟欏廣?BR> 鍦╓indows騫沖彴涓紝鐢ㄦ埛鍙傛暟欏瑰湪娉ㄥ唽琛ㄤ腑鐨勬牴鑺傜偣鏄?BR> HKEY_CURRENT_USER\Software\JavaSoft\Prefs 緋葷粺鍙傛暟欏瑰湪娉ㄥ唽琛ㄤ腑鐨勬牴鑺傜偣鏄?BR> HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs 鑰屾垜浠寚瀹氱殑鑺傜偣璺緞鏄綅浜庤繖浜涙牴鑺傜偣涔嬩笅鐨? 濡備綍璇誨啓鏁版嵁 Preferences鎻愪緵浜嗗縐嶇被鍨嬫暟鎹殑璇誨啓鏂規(guī)硶銆?BR>鍏堟潵鐪嬪啓(put)鐨勬柟娉? put(String key, String value) putBoolean(String key, boolean value) putByteArray(String key, byte value[]) putDouble(String key, double value) putFloat(String key, float value) putInt(String key, int value) putLong(String key, long value) 涓嬮潰鐨勬槸璇?get)鐨勬柟娉? get(String key, String default) getBoolean(String key, boolean default) getByteArray(String key, byte default[]) getDouble(String key, double default) getFloat(String key, float default) getInt(String key, int default) getLong(String key, long default) 娉ㄦ剰錛屾瘡涓縐峠et鏂規(guī)硶鐨勭浜屼釜鍙傛暟闇瑕佹垜浠負瀹冩寚瀹氱己鐪佺殑鍙傛暟銆?BR>闄や簡浠ヤ笂鏂瑰紡涔嬪錛孭references榪樺厑璁告垜浠皢瀹冪殑鏁版嵁瀵煎嚭鍒頒竴涓猉ML鏂囦歡淇濆瓨錛?BR> void exportNode(OutputStream os) void exportSubtree(OutputStream os) 鎴戜滑鍙互瀵煎嚭涓涓妭鐐癸紝鎴栨槸瀵煎嚭鏁翠釜瀛愯妭鐐規(guī)爲. Preferences鐨勪竴涓紨紺?BR>浠ヤ笂鐨勮瑙h凍鍙互鍐欎竴涓ず渚嬫潵鐪嬬湅Preferences鏄浣曚負鎴戜滑宸ヤ綔鐨?鐪嬬湅涓嬮潰鐨勪緥瀛? import java.io.*; import java.util.prefs.*; public class PrefsDemo { public static void main(String args[]) { String keys[] = {"sunway","copyright","author"}; String values[] = {"sunway technology company","copyright 2002","turbochen@163.com"}; /* 寤虹珛涓涓綅浜巙ser root涓嬬殑/com/sunway/spc鑺傜偣鍙傛暟欏?/ Preferences prefsdemo = Preferences.userRoot().node("/com/sunway/spc"); /* 鍌ㄥ瓨鍙傛暟欏?/ for (int i=0 ; i < keys.length; i++) { prefsdemo.put(keys, values); } /* 瀵煎嚭鍒癤ML鏂囦歡 */ try { FileOutputStream fos = new FileOutputStream("prefsdemo.xml"); prefsdemo.exportNode(fos); } catch (Exception e) { System.err.println("Cannot export nodes: " + e); } /* 鍘繪帀娉ㄩ噴鍙互娓呴櫎娉ㄥ唽琛ㄤ腑鐨勫弬鏁伴」*/ /* try { prefsdemo.removeNode(); } catch (BackingStoreException e) { } */ } } |
protected Object initialValue() { return null; } |
public class ThreadLocal { 銆 private Map values = Collections.synchronizedMap(new HashMap()); 銆 public Object get() 銆 { 銆銆 Thread curThread = Thread.currentThread(); 銆銆 Object o = values.get(curThread); 銆銆 if (o == null && !values.containsKey(curThread)) 銆銆 { 銆銆銆 o = initialValue(); 銆銆銆 values.put(curThread, o); 銆銆 } 銆銆 return o; 銆 } 銆 public void set(Object newValue) 銆 { 銆銆 values.put(Thread.currentThread(), newValue); 銆 } 銆 public Object initialValue() 銆 { 銆銆 return null; 銆 } } |
public class SerialNum { 銆 // The next serial number to be assigned 銆 private static int nextSerialNum = 0; 銆 private static ThreadLocal serialNum = new ThreadLocal() 銆 { 銆銆 protected synchronized Object initialValue() 銆銆 { 銆銆銆 return new Integer(nextSerialNum++); 銆銆 } 銆 }; 銆 public static int get() 銆 { 銆銆 return ((Integer) (serialNum.get())).intValue(); 銆 } } |
int serial = SerialNum.get(); |