Java¶àÏß³ÌÖ®ThreadLocal_1
ThreadLocalµÄºËÐÄ˼ÏëºÜ¼òµ¥£ºÎªÃ¿¸ö¶ÀÁ¢µÄÏß³ÌÌṩһ¸ö±äÁ¿µÄ¸±±¾¡£
ThreadLocalÔòʹÓÃÁË“¿½±´¸±±¾”µÄ·½Ê½£¬ÈËÈËÓзݣ¬ÄãÓÃÄãµÄ£¬ÎÒÓÃÎҵ쬴ó¼Ò»¥²»Ó°Ï죬ÊÇ“ÒԿռ任ʱ¼ä”¡£Ã¿¸öÏß³ÌÐ޸ıäÁ¿Ê±£¬Êµ¼ÊÉÏÐ޸ĵÄÊDZäÁ¿µÄ¸±±¾£¬²»ÅÂÓ°Ïìµ½ÆäËüÏ̡߳£
ΪÁ˼ÓÉî¶ÔThreadLocalµÄÀí½â£¬ÏÂÃæÎÒʹÓÃÒ»¸öÀý×ÓÀ´ÑÝʾThreadLocalÈçºÎ¸ôÀëÏ̼߳äµÄ±äÁ¿·ÃÎʺÍÐ޸ģº
¡¾1¡¿SerialNumÀà
package example.thread.threadLocal;
public class SerialNum {
private static int nextSerialNum = 1;
@SuppressWarnings("unchecked")
private static ThreadLocal serialNum = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Integer(nextSerialNum++);
}
};
public static int get() {
return ((Integer) (serialNum.get())).intValue();
}
@SuppressWarnings("unchecked")
public static void set(Integer newSerial){
serialNum.set(newSerial);
}
}
¡¾2¡¿GetSerialNumThread package example.thread.threadLocal;
À´Ô´£ºÊÕ¼¯ÕûÀíÓÚ»¥ÁªÍø
Ïà¹ØÎĵµ£º
package com.yzy;
import java.util.regex.*;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Pattern p=Pattern.compile("^[a-z]+");
Matcher m=p.matcher("a233"); //true
//Matcher m=p.matcher("2233") ......
¾¡Á¿¸´ÓöÔÏ󣬶ø²»ÊÇ´´½¨ÐµĶÔÏó£¬ÌرðÊǵ±Ò»¸ö¶ÔÏóÊÇimmutable£¨²»¿É¸Ä±ä£©µÄʱºò¡£
ÈçString¶ÔÏó£¬
String s= new String(“String”); ǧÍò²»ÒªÕâÑù×ö£¬ÒòΪÕâÀïʵ¼ÊÉÏ´´½¨ÁËÁ½¸ö¶ÔÏó¡£
Òª±ÜÃâ³öÏÖÕâÑùµÄÇé¿ö£¬
1ÊÇ¿ÉÒÔÓþ²Ì¬¹¤³§º¯Êý£¬À´½â¾ö£¬ÈçÀà¿âÖеÄBoolean.valueOf(“true&rdqu ......
µ±ÖØÔØequals·½·¨Ê±,×ñѹßÀý.
equals²»ÊÇÿ¸öÀà¶¼±ØÐëÖØÔØ,µ±ÒÔϼ¸¸öÌõ¼þÂú×ã,¿ÉÒÔ²»ÖØÔØequals.
1. ÀàµÄʵÀýÖ»ÓÐͬһ¸ö²Å±»ÅÐΪÏàµÈ. ÈçThreadÀà.
2. ²»ÓùØÐÄÁ½¸ö¶ÔÏóÊÇ·ñÂß¼ÏàµÈµÄʱºò,»òÊÇ˵±È½Ï¶ÔÏóûÓÐÒâÒå.
3.¸¸ÀàÒÑ¾ÖØÔØÁËequals,¶øÇÒ¸¸ÀàµÄequalsÒ²ÊÊÓÃÓÚ×ÓÀà,×ÓÀà¾Í²»ÓÃÖØÔØequals.
4.ÕâÊÇÒ»¸ö˽ÓÐÀà»òÊ ......
JavaÃæÏò¶ÔÏó±à³Ì-6.3 ·½·¨¸²¸Ç£¨Override£©¼ÙÈçÓÐ100¸öÀ࣬·Ö±ðΪSub1£¬Sub2…Sub100£¬ËüÃǵÄÒ»¸ö¹²Í¬ÐÐΪÊÇд×Ö£¬³ýÁËSub1ÀàÓýÅд×ÖÍ⣬ÆäÓàµÄÀà¶¼ÓÃÊÖд×Ö¡£¿ÉÒÔ³éÏó³öÒ»¸ö¸¸ÀàBase£¬ËüÓÐÒ»¸ö±íʾд×ֵķ½·¨write()£¬ÄÇôÕâ¸ö·½·¨µ½µ×ÈçºÎʵÏÖÄØ£¿´Ó¾¡¿ÉÄÜÌá¸ß´úÂë¿ÉÖØÓÃÐԵĽǶȿ´£¬write()·½·¨Ó¦¸Ã²ÉÓÃÊÊÓÃÓÚ´ó ......