¶àÏß³ÌÖ®¼äÐèҪе÷¹¤×÷¡£ÀýÈ磬ä¯ÀÀÆ÷µÄÒ»¸öÏÔʾͼƬµÄÏß³ÌdisplayThreadÏëÒªÖ´ÐÐÏÔʾͼƬµÄÈÎÎñ£¬±ØÐëµÈ´ýÏÂÔØÏß³ÌdownloadThread½«¸ÃͼƬÏÂÔØÍê±Ï¡£Èç¹ûͼƬ»¹Ã»ÓÐÏÂÔØÍ꣬displayThread¿ÉÒÔÔÝÍ££¬µ±downloadThreadÍê³ÉÁËÈÎÎñºó£¬ÔÙ֪ͨdisplayThread“ͼƬ׼±¸Íê±Ï£¬¿ÉÒÔÏÔʾÁË”£¬Õâʱ£¬displayThread¼ÌÐøÖ´ÐС£
ÒÔÉÏÂß¼¼òµ¥µÄ˵¾ÍÊÇ£ºÈç¹ûÌõ¼þ²»Âú×㣬ÔòµÈ´ý¡£µ±Ìõ¼þÂú×ãʱ£¬µÈ´ý¸ÃÌõ¼þµÄÏ߳̽«±»»½ÐÑ¡£ÔÚJavaÖУ¬Õâ¸ö»úÖÆµÄʵÏÖÒÀÀµÓÚwait/notify¡£µÈ´ý»úÖÆÓëËø»úÖÆÊÇÃÜÇйØÁªµÄ¡£ÀýÈ磺
synchronized(obj) {
while(!condition) {
obj.wait();
}
obj.doSomething();
}
µ±Ïß³ÌA»ñµÃÁËobjËøºó£¬·¢ÏÖÌõ¼þcondition²»Âú×㣬ÎÞ·¨¼ÌÐøÏÂÒ»´¦Àí£¬ÓÚÊÇÏß³ÌA¾Íwait()¡£
ÔÚÁíÒ»Ïß³ÌBÖУ¬Èç¹ûB¸ü¸ÄÁËijЩÌõ¼þ£¬Ê¹µÃÏß³ÌAµÄconditionÌõ¼þÂú×ãÁË£¬¾Í¿ÉÒÔ»½ÐÑÏß³ÌA£º
synchronized(obj) {
condition = true;
obj.notify();
}
ÐèҪעÒâµÄ¸ÅÄîÊÇ£º
# µ÷ÓÃobjµÄwait(), notify()·½·¨Ç°£¬±ØÐë»ñµÃobjËø£¬Ò²¾ÍÊDZ ......
2010-05-16
Èý¡¢½âÎöXMLÎĵµ
l Xerces½âÎöÆ÷¡¢SAXÀàºÍ½Ó¿Ú
l SAXÔĶÁÆ÷
n Ê×ÏÈÒªµÃµ½Ò»¸ö·ûºÏSAX org.xml.sax.XMLReader½Ó¿Ú¹æ·¶µÄÀý×Ó£¬Õâ¸ö½Ó¿Ú¶¨ÒåÁ˽âÎöÐÐΪ²¢ÔÊÐíÉèÖÃÄ³Ð©ÌØÕ÷ºÍÊôÐÔ¡£¸Ã½Ó¿ÚÌæ»»ÁËSAX1.0ÖеÄorg.xml.sax.Parser
import org.apache.xerces.parsers.SAXParser;
import org.xml.sax.XMLReader;
XMLReader parser = new SAXParser();
parser.parse(uri);
n µ±Ò»¸ö½âÎöÆ÷µ÷Èë²¢×¼±¸¾ÍÐ÷ºó£¬Ëü¾Í¿ÉÒÔ¶ÔÎĵµ½øÐнâÎöÁË£¬Í¨³£ÓÉparse()·½·¨µÄorg.xml.sax.XMLReaderÀ´´¦ÀíÒ»¸öorg.xml.sax.InputSource»òÕßÒ»¸öURI´®¡£
n ÄÚÈݹÜÀíÆ÷£ºÔÚ½âÎö½øÐÐʱ£¬ÎªÊ¹Ó¦ÓóÌÐòÓÐЧµØ´¦ÀíXMLÊý¾Ý£¬±ØÐëÓÃSAX½âÎöÆ÷µÇ¼Ç¹ÜÀíÆ÷£¨handler£©¡£¹ÜÀíÆ÷ÊÇÒ»×éSAX¶¨ÒåµÄ»Øµ÷£¬ËüÄÜÔÚÎĵµ½âÎö¹ý³ÌÖиøÖØÒªµÄʼþ²åÈëÏàÓ¦µÄÓ¦ÓóÌÐò´úÂë¡£ÕâЩʼþÓëÎĵµ½âÎöͬʱ½øÐС£SAX³ÉΪһ¸öÇ¿´ó½Ó¿ÚµÄÔÒòÖ®Ò»£º²»ÐèÒªÔÚÆðʼʱ¾Í½«È«²¿Îĵµ¶ÁÈëÄڴ棬¶þÊ®¿ÉÒÔ¶ÔÆä½øÐÐÁ¬Ðø´¦Àí¡£
n SAX2.0¶¨ÒåÁËËĸöºËÐĵĹÜÀíÆ÷½Ó¿Ú£ºorg.xml.sax.ContentHandler¡¢org.xml.sax.ErrorHandler¡¢org.xml.sax.DTDHandler¡¢org.xml.sax.EntityResolver¡£½âÎö¹ý³ÌÖУ¬Ö´ÐÐ ......
2010-05-16
Èý¡¢½âÎöXMLÎĵµ
l Xerces½âÎöÆ÷¡¢SAXÀàºÍ½Ó¿Ú
l SAXÔĶÁÆ÷
n Ê×ÏÈÒªµÃµ½Ò»¸ö·ûºÏSAX org.xml.sax.XMLReader½Ó¿Ú¹æ·¶µÄÀý×Ó£¬Õâ¸ö½Ó¿Ú¶¨ÒåÁ˽âÎöÐÐΪ²¢ÔÊÐíÉèÖÃÄ³Ð©ÌØÕ÷ºÍÊôÐÔ¡£¸Ã½Ó¿ÚÌæ»»ÁËSAX1.0ÖеÄorg.xml.sax.Parser
import org.apache.xerces.parsers.SAXParser;
import org.xml.sax.XMLReader;
XMLReader parser = new SAXParser();
parser.parse(uri);
n µ±Ò»¸ö½âÎöÆ÷µ÷Èë²¢×¼±¸¾ÍÐ÷ºó£¬Ëü¾Í¿ÉÒÔ¶ÔÎĵµ½øÐнâÎöÁË£¬Í¨³£ÓÉparse()·½·¨µÄorg.xml.sax.XMLReaderÀ´´¦ÀíÒ»¸öorg.xml.sax.InputSource»òÕßÒ»¸öURI´®¡£
n ÄÚÈݹÜÀíÆ÷£ºÔÚ½âÎö½øÐÐʱ£¬ÎªÊ¹Ó¦ÓóÌÐòÓÐЧµØ´¦ÀíXMLÊý¾Ý£¬±ØÐëÓÃSAX½âÎöÆ÷µÇ¼Ç¹ÜÀíÆ÷£¨handler£©¡£¹ÜÀíÆ÷ÊÇÒ»×éSAX¶¨ÒåµÄ»Øµ÷£¬ËüÄÜÔÚÎĵµ½âÎö¹ý³ÌÖиøÖØÒªµÄʼþ²åÈëÏàÓ¦µÄÓ¦ÓóÌÐò´úÂë¡£ÕâЩʼþÓëÎĵµ½âÎöͬʱ½øÐС£SAX³ÉΪһ¸öÇ¿´ó½Ó¿ÚµÄÔÒòÖ®Ò»£º²»ÐèÒªÔÚÆðʼʱ¾Í½«È«²¿Îĵµ¶ÁÈëÄڴ棬¶þÊ®¿ÉÒÔ¶ÔÆä½øÐÐÁ¬Ðø´¦Àí¡£
n SAX2.0¶¨ÒåÁËËĸöºËÐĵĹÜÀíÆ÷½Ó¿Ú£ºorg.xml.sax.ContentHandler¡¢org.xml.sax.ErrorHandler¡¢org.xml.sax.DTDHandler¡¢org.xml.sax.EntityResolver¡£½âÎö¹ý³ÌÖУ¬Ö´ÐÐ ......
ÒýÓÃ
1.µã “window”-> "Preferences" -> "Java" -> "Installed JRES"
2.´Ëʱ"Installed JRES"ÓÒ±ßÊÇÁÐ±í´°¸ñ£¬ÁгöÁËϵͳÖÐµÄ JRE »·¾³£¬Ñ¡ÔñÄãµÄJRE£¬È»ºóµã±ßÉ쵀 "Edit..."£¬ »á³öÏÖÒ»¸ö´°¿Ú(Edit JRE)
3.Ñ¡ÖÐrt.jarÎļþµÄÕâÒ»Ï“c:\program files\java\jre_1.5.0_06\lib\rt.jar”
µã ×ó±ßµÄ“+” ºÅÕ¹¿ªËü£¬
4.Õ¹¿ªºó£¬¿ÉÒÔ¿´µ½“Source Attachment:(none)”£¬µãÕâÒ»ÏµãÓұߵİ´Å¥“Source Attachment...”, Ñ¡ÔñÄãµÄJDKĿ¼Ï嵀 “src.zip”Îļþ
5.һ·µã"ok",½áÊø¡£
dt.jarÊǹØÓÚÔËÐл·¾³µÄÀà¿â,Ö÷ÒªÊÇswingµÄ°ü
tools.jar ÊǹØÓÚһЩ¹¤¾ßµÄÀà¿â
rt.jar°üº¬ÁËjdkµÄ»ù´¡Àà¿â£¬Ò²¾ÍÊÇÄãÔÚ java docÀïÃæ¿´µ½µÄËùÓеÄÀàµÄclassÎļþ ......
ÊýÄêǰ£¬µ±ºÍÒ»¸öÈí¼þÍŶÓÒ»ÆðÓà Java ÓïÑÔ±àдһ¸öÓ¦ÓóÌÐòʱ£¬ÎÒÌå»áµ½±ÈÒ»°ã³ÌÐòÔ±¶àÖªµÀÒ»µã¹ØÓÚ Java ¶ÔÏóÐòÁл¯µÄ֪ʶËù´øÀ´µÄºÃ´¦¡£
´óÔ¼Ò»Äêǰ£¬Ò»¸ö¸ºÔð¹ÜÀíÓ¦ÓóÌÐòËùÓÐÓû§ÉèÖõĿª·¢ÈËÔ±£¬¾ö¶¨½«Óû§ÉèÖô洢ÔÚÒ»¸ö Hashtable ÖУ¬È»ºó½«Õâ¸ö Hashtable ÐòÁл¯µ½´ÅÅÌ£¬ÒÔ±ã³Ö¾Ã»¯¡£µ±Óû§¸ü¸ÄÉèÖÃʱ£¬±ãÖØÐ½« Hashtable дµ½´ÅÅÌ¡£
ÕâÊÇÒ»¸öÓÅÑŵġ¢¿ª·ÅʽµÄÉèÖÃϵͳ£¬µ«ÊÇ£¬µ±ÍŶӾö¶¨´Ó Hashtable Ç¨ÒÆµ½ Java Collections ¿âÖÐµÄ HashMap ʱ£¬Õâ¸öϵͳ±ãÃæÁÙ±ÀÀ£¡£
Hashtable ºÍ HashMap ÔÚ´ÅÅÌÉϵĸñʽÊDz»Ïàͬ¡¢²»¼æÈݵġ£³ý·Ç¶Ôÿ¸ö³Ö¾Ã»¯µÄÓû§ÉèÖÃÔËÐÐijÖÖÀàÐ͵ÄÊý¾Ýת»»ÊµÓóÌÐò£¨¼«ÆäÅÓ´óµÄÈÎÎñ£©£¬·ñÔòÒÔºóËÆºõÖ»ÄÜÒ»Ö±Óà Hashtable ×÷ΪӦÓóÌÐòµÄ´æ´¢¸ñʽ¡£
ÍŶӸе½ÏÝÈ뽩¾Ö£¬µ«ÕâÖ»ÊÇÒòΪËûÃDz»ÖªµÀ¹ØÓÚ Java ÐòÁл¯µÄÒ»¸öÖØÒªÊÂʵ£ºJava ÐòÁл¯ÔÊÐíËæ×Åʱ¼äµÄÍÆÒÆ¶ø¸Ä±äÀàÐÍ¡£µ±ÎÒÏòËûÃÇչʾÈçºÎ×Ô¶¯½øÐÐÐòÁл¯Ìæ»»ºó£¬ËûÃÇÖÕÓÚ°´¼Æ»®Íê³ÉÁËÏò HashMap µÄת±ä¡£
±¾ÎÄÊDZ¾ÏµÁеĵÚһƪÎÄÕ£¬Õâ¸öϵÁÐרÃŽÒʾ¹ØÓÚ Java ƽ̨µÄһЩÓÐÓõÄС֪ʶ — ÕâЩС֪ʶ²»Ò×Àí½â£¬µ«¶ÔÓÚ½â¾ö Java ±à³ÌÌôÕ½³ÙÔçÓÐÓá£
½« Java ¶ÔÏóÐòÁл¯ API ×÷Î ......
JVMÄÚ´æµÄÉèÖõÄÔÀí
ĬÈϵÄjavaÐéÄâ»úµÄ´óС±È½ÏС£¬ÔÚ¶Ô´óÊý¾Ý½øÐд¦Àíʱjava¾Í»á±¨´í£ºjava.lang.OutOfMemoryError¡£
ÉèÖÃjvmÄÚ´æµÄ·½·¨£¬¶ÔÓÚµ¥¶ÀµÄ.class£¬¿ÉÒÔÓÃÏÂÃæµÄ·½·¨¶ÔTestÔËÐÐʱµÄjvmÄÚ´æ½øÐÐÉèÖá£
java -Xms64m -Xmx256m Test
-XmsÊÇÉèÖÃÄÚ´æ³õʼ»¯µÄ´óС
-XmxÊÇÉèÖÃ×î´óÄܹ»Ê¹ÓÃÄÚ´æµÄ´óС£¨×îºÃ²»Òª³¬¹ýÎïÀíÄÚ´æ´óС£©
ÔÚweblogicÖУ¬¿ÉÒÔÔÚstartweblogic.cmdÖжÔÿ¸ödomainÐéÄâÄÚ´æµÄ´óС½øÐÐÉèÖã¬Ä¬ÈϵÄÉèÖÃÊÇÔÚcommEnv.cmdÀïÃæ¡£
±¾ÎÄÒýÓõØÖ·£º http://cnpoint.com/framwwork/2006/1109/content_4563.htm
JVMÄÚ´æµÄµ÷ÓÅ
1. HeapÉ趨ÓëÀ¬»ø»ØÊÕJava Heap·ÖΪ3¸öÇø£¬Young£¬OldºÍPermanent¡£Young±£´æ¸ÕʵÀý»¯µÄ¶ÔÏó¡£µ±¸ÃÇø±»ÌîÂúʱ£¬GC»á½«¶ÔÏóÒÆµ½OldÇø¡£PermanentÇøÔò¸ºÔð±£´æ·´Éä¶ÔÏ󣬱¾ÎIJ»ÌÖÂÛ¸ÃÇø¡£JVMµÄHeap·ÖÅä¿ÉÒÔʹÓÃ-X²ÎÊýÉ趨£¬
-Xms
³õʼHeap´óС
-Xmx
java heap×î´óÖµ
-Xmn
young generationµÄheap´óС
JVMÓÐ2¸öGCÏ̡߳£µÚÒ»¸öÏ̸߳ºÔð»ØÊÕHeapµÄYoungÇø¡£µÚ¶þ¸öÏß³ÌÔÚHeap²»×ãʱ£¬±éÀúHeap£¬½«Young ÇøÉý¼¶ÎªOlderÇø¡£OlderÇøµÄ´óСµÈÓÚ-Xmx¼õÈ¥-Xmn£¬²»Äܽ«-XmsµÄÖµÉèµÄ¹ý´ó£¬ÒòΪµÚ¶þ¸öÏ̱߳»Æ ......
FileInputStreamºÍFileOutputStream
FileInputStream £º
ÓÃÓÚ˳Ðò·ÃÎʱ¾µØÎļþ£¬ÓÃÓÚ¶ÁÈ¡ÖîÈçͼÏñÊý¾ÝÖ®ÀàµÄÔʼ×Ö½ÚÁ÷£¬´Ó³¬ÀàInputStreamÖм̳ÐÁËread,closeµÈ·½·¨£¬¶ÔÎļþ½øÐвÙ×÷£¬²»Ö§³Ö·½·¨ºÍ·½·¨£®ËüµÄÁ½¸ö³£ÓõĹ¹Ôì·½·¨ÊÇ£º¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
FileInputStream(String filepath/*ÎļþµÄÈ«³ÆÂ·¾¶*/);¡¡¡¡¡¡
¡¡FileInputStream(File fileObj/*ÃèÊö¸ÃÎļþµÄFile¶ÔÏó*/);¡¡¡¡
¡¡¡¡
¿ÉÒÔÓÃÕâÑùµÄ·½·¨¹¹ÔìÎļþÊäÈëÁ÷£º¡¡¡¡
(1)FileInputStream¡¡f1 = new FileInputStream("test.txt");
(2)File f =new File("test.txt");
FileInputStream f2 = new FileInputStream(f);
FileInputStreamÖØÐ´Á˳éÏóÀà InputStreamµÄ¶ÁÈ¡Êý¾ÝµÄ·½·¨£º
public int read //´Ó´ËÊäÈëÁ÷ÖжÁȡһ¸öÊý¾Ý×Ö½Ú¡¡¡¡¡¡¡¡¡¡¡¡
public int read(byte[ ] b);//´Ó´ËÊäÈ ......