²»¾ÃǰÓõ½ÁËͬ²½£¬ÏÖÔڻعýÍ·À´¶ÔJAVAÖеÄͬ²½×ö¸ö×ܽᣬÒÔ¶Ôǰ¶Îʱ¼ä¹¤×÷µÄ×ܽáºÍ×ÔÎÒ¼¼ÊõµÄÌõÀí»°¡£JAVAÖÐsynchronized¹Ø¼ü×ÖÄܹ»×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£¬Ò²¾ÍÊÇÆ½Ê±ËµµÄͬ²½·½·¨ºÍͬ²½Óï¾ä¿é¡£¼ÙÈçÔÙϸµÄ·ÖÀ࣬synchronized¿É×÷ÓÃÓÚinstance±äÁ¿¡¢object reference£¨¶ÔÏóÒýÓã©¡¢staticº¯ÊýºÍclass literals(ÀàÃû³Æ×ÖÃæ³£Á¿)ÉíÉÏ¡£
ÔÚ½øÒ»²½²ûÊö֮ǰ£¬ÎÒÃÇÐèÒªÃ÷È·¼¸µã£º
A£®ÎÞÂÛsynchronized¹Ø¼ü×Ö¼ÓÔÚ·½·¨ÉÏ»¹ÊǶÔÏóÉÏ£¬ËûÈ¡µÃµÄËø¶¼ÊǶÔÏ󣬶ø²»ÊǰÑÒ»¶Î´úÂë»òº¯Êýµ±×÷Ëø¨D¨D¶øÇÒͬ²½·½·¨ºÜ¿ÉÄÜ»¹»á±»ÆäËûÏ̵߳ĶÔÏó·ÃÎÊ¡£
B£®Ã¿¸ö¶ÔÏóÖ»ÓÐÒ»¸öËø£¨lock£©ºÍÖ®Ïà¹ØÁª¡£
C£®ÊµÏÖͬ²½ÊÇÒªºÜ´óµÄϵͳ¿ªÏú×÷Ϊ´ú¼ÛµÄ£¬ÉõÖÁ¿ÉÄÜÔì³ÉËÀËø£¬ËùÒÔ¾¡Á¿±ÜÃâÎÞνµÄͬ²½¿ØÖÆ¡£
½Ó×ÅÀ´ÌÖÂÛsynchronizedÓõ½²»Í¬µØ·½¶Ô´úÂë²úÉúµÄÓ°Ï죺
¼ÙÉèP1¡¢P2ÊÇͬһ¸öÀàµÄ²»Í¬¶ÔÏó£¬Õâ¸öÀàÖж¨ÒåÁËÒÔϼ¸ÖÖÇé¿öµÄͬ²½¿é»òͬ²½·½·¨£¬P1¡¢P2¾Í¶¼Äܹ»µ÷ÓÃËûÃÇ¡£
1£® °Ñsynchronizedµ±×÷º¯ÊýÐÞÊηûʱ£¬Ê¾Àý´úÂëÈçÏ£º
Public synchronized void method(){
//….
}
ÕâÒ²¾ÍÊÇͬ²½·½·¨£¬Ä ......
ÎÒÄܳéÏó³öÕû¸öÊÀ½ç£¬µ«ÎÒ³éÏó²»³öÄ㣬ÒòΪÄãÔÚÎÒÐÄÀïÊÇÄǸöô¾ßÌ壬ËùÒÔÎÒµÄÊÀ½ç±äµÃ²¢²»ÍêÕû£¬
ÎÒ¿ÉÒÔÖØÔØÉõÖÁ¸²¸ÇÕâ¸öÊÀ½çÀïµÄÈκÎÒ»ÖÖ·½·¨£¬µ«ÊÇÎÒÈ´²»ÄÜÖØÔØ¶ÔÄãµÄ˼ÄҲÐíÃüÖÐ×¢¶¨ÁË£¬
ÄãÔÚÎÒµÄÊÀ½çÀïÓÀÔ¶µÄÀÓÉÏÁ˾²Ì¬µÄÊôÐÔ£¬¶øÎÒ²»É÷µ÷ÓÃÁ˰®ÄãÕâ¸ö·½·¨£¬µ±ÎÒÒåÎÞ·µ¹ËµÄ°Ñ×Ô¼º×÷Ϊ²ÎÊý´«½øÕâ¸ö·½·¨Ê±
ÎҲŷ¢ÏÖ°®ÉÏÄãÊÇÒ»¸öËÀÑ»·£¬Ëü²»Í£µÄ·µ»Ø¶ÔÄãµÄ˼ÄîѹÈëÎÒÐÄÀïµÄ¶ÑÕ»£¬ÔÚÕâÎÞ¾¡µÄºÚÒ¹ÖУ¬ÎÒµÄÄÚ´æÀïÒѾÔÙÒ²×°²»Ï±ðÈË
ÎÒ²»Í£µÄÏòϵͳÉêÇë¿Õ¼ä£¬ µ«È´²¶»ñÒ»¸öÒì³££¬ÎÒ°®µÄÈ˲»°®ÎÒ£¬ ΪÁ˽â¾öÕâ¸öÒì³££¬ ÎÒÔ¸ÒâÐéÄâ³ö×îºóÒ»µãÄÚ´æ
°ÑËùÓÐÎÒÄÜʵÏֵķ½·¨µØÖ·Ñ¹Èë¶ÑÕ»£¬²¢ÇÒÔÚջβѹÈë×îºóÒ»¸ö·½·¨£¬½«×Ö·û´®£¢ÎÒ°®Ä㣬Äã°®ÎÒÂ𣿣¢´« µÝ¸øÄã
Èç¹û·µ»ØÖµÎªÕ棬ÎÒ½«Óþ¡Ò»ÉúÈ¥°®Ä㣬 ·ñÔò£¬ÎÒ½«ÊͷŵôËùÓÐϵͳ×ÊÔ´£¬ ¸øÄã¸ü¶àµÄ¿Õ¼äÈ¥×·ÇóÐÒ¸£¡£ ......
JAIµÄÈ·ÊǸö²»´íµÄ¶«¶«£¬Í¼ÐÎäÖȾÉÏÌṩÁ˱ȽϺõÄÀà·â×°ÒÔ¼°¿çƽ̨ÐÔ¡£²»ÖªµÀΪºÎJAI¾ÍÔÚ2006ÄêÖ¹²½ÔÚ1.1.3µÄ°æ±¾ÏÂÁË£¬Äª·ÇSun(Oracle)ÕæµÄÈ¥×öJava 2DµÄ·á¸»È¥ÁË¡£ÔÝʱ»¹Ã»Óп´µ½Java 2D·½ÃæµÄ×ÊÁÏ£¬ÏȰÑJAIµÄÄÚÈÝÌù³öÀ´¡£
ÏÂÔØJAI¿ÉÒÔÈ¥ÕâÀï http://download.java.net/media/jai/builds/release/1_1_3/
ÏëÒªÁ˽âËüµÄ°²×°£¬¿ÉÒÔÈ¥ÕâÀï²é¿´¸÷²Ù×÷ϵͳµÄ°²×°·½·¨ http://download.java.net/media/jai/builds/release/1_1_3/INSTALL.html
ÒýÁËÒ»¶Î¡¶Programming in Java Advanced Imaging¡·pdfÖеÄÒ»¶Î´úÂë¡£ÕâÆªpdf¿ÉÒÔ´ÓÕâÀïϵ½ http://dlc.sun.com/pdf/806-5413-10/806-5413-10.pdf
import java.awt.Frame;
import java.awt.image.renderable.ParameterBlock;
import java.io.IOException;
import javax.media.jai.Interpolation;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import javax.media.jai.widget.ScrollingImagePanel;
import com.sun.media.jai.codec.FileSeekableStream;
public class JAISampleProgram {
/**
* @param args
*/
public static void main(String[] args) {
if( ......
Ò»¡¢Java¶àÏ̻߳¥³â¼°Í¬²½¿ØÖƺÍͨÐÅ
¶à¸öÏ̵߳ÄÖ´ÐÐÊDz¢·¢µÄ£¬Ò²¾ÍÊÇÔÚÂß¼Éϓͬʱ”£¬¶ø²»¹ÜÊÇ·ñÊÇÎïÀíÉϵēͬʱ”¡£Èç¹ûϵͳֻÓÐÒ»¸öCPU£¬ÄÇ̫;ÕýµÄ“ͬʱ”ÊDz»¿ÉÄܵ쬵«ÊÇÓÉÓÚCPUµÄËٶȷdz£¿ì£¬Óû§¸Ð¾õ²»µ½ÆäÖеÄÇø±ð£¬Òò´ËÎÒÃÇÒ²²»ÓùØÐÄËü£¬Ö»ÐèÒªÉèÏë¸÷¸öÏß³ÌÊÇͬʱִÐм´¿É¡£
¶àÏ̺߳ʹ«Í³µÄµ¥Ïß³ÌÔÚ³ÌÐòÉè¼ÆÉÏ×î´óµÄÇø±ðÔÚÓÚ£¬ÓÉÓÚ¸÷¸öÏ̵߳ĿØÖÆÁ÷±Ë´Ë¶ÀÁ¢£¬Ê¹µÃ¸÷¸öÏß³ÌÖ®¼äµÄ´úÂëÊÇÂÒÐòÖ´Ðеģ¬ÓÉ´Ë´øÀ´µÄÏ̵߳÷¶È£¬Í¬²½µÈÎÊÌâ¡£
1¡¢Ï̻߳¥³âÓëÏß³Ìͬ²½
Ï̻߳¥³â£º²¢·¢Ö´ÐеĶà¸öÏß³ÌÔÚijһʱ¼äÄÚÖ»ÔÊÐíÒ»¸öÏß³ÌÔÚÖ´ÐÐÒÔ·ÃÎÊÊý¾Ý¡£
Ïß³Ìͬ²½£º²¢·¢Ö´ÐеĶà¸öÏß³ÌÖ®¼ä»¥Ïà·¢ËÍÏûÏ¢½øÐкÏ×÷¡¢»¥ÏàµÈ´ý£¬°´Ò»¶¨ËÙ¶ÈÅäºÏÖ´ÐС£
2¡¢Ï̻߳¥³â
ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£
£¨1£©Ó¦Óõij¡ºÏ£º
µ±Á½¸ö»ò¶à¸öÏß³Ìͬʱ·ÃÎʹ²ÏíÊý¾Ýʱ£¬¿ÉÄܶÔÊý¾Ý½øÐжÁ¡¢Ð´¡¢Ð޸ġ¢É¾³ýµÈ²Ù×÷ʱ£¬Ó¦±£Ö¤Í¬Ê±Ö»ÓÐÒ»¸öÏ̷߳à ......
java¶ÔÁ½¸öString½øÐбȽϣ¬Ìá¸ß´úÂëÔËÐÐЧÂÊ·½·¨ÈçÏ£º
ÔÚ±à³Ì¹ý³ÌÖУ¬ÓÐʱºòÎÒÃÇÐèҪѻ·±È½Ï×Ö·û´®£¬Í¨³£Ê¹Óõķ½·¨ÊÇequalsÈçÏ£º
public class TestEquals extends Thread {
public static void main(String args[]) {
String[] checkStr = {"","aaaa","bbbb","sdf","dsdf"};
String str="DingDong";
for(int i=0;i<checkStr.length;i++){
if(str.equals(checkStr[i])){//±È½Ï×Ö·û´®
System.out.println("DingDong has in the checkStr list!");
break;
}
}
}
}
¶øequals ......
Õâ¶Îʱ¼äΪ¹«Ë¾ÄÚ²¿µÄÊý¾Ý´¦Àí¿ª·¢ÁËÒ»¸ö¹¤¾ß£¬Ç£Éæµ½ÔÚOracleÖм¯³ÉjavaÓ¦Óã¬×ܽáÁËһЩ¾Ñ飬ÒÔ¹©´ó¼Ò²Î¿¼ÁË£¡
³ÌÐò·ÖÁ½²¿·Ö£¬Ç°¶Ë½çÃæÓÉVB/VC¿ª·¢£¬Ö÷ҪʵÏÖÊý¾Ý´¦ÀíÅäÖü°³£¹æ¼Ç¼ÔËË㣬Õⲿ·ÖûÓÐʲôºÃ˵µÄÁË¡£
ºǫ́ÒÔOracleΪÊý¾Ý»ù´¡´¦ÀíÍÐ¹ÜÆ½Ì¨£¬ÔÚÊý¾Ý´¦Àí¹ý³ÌÖУ¬ÐèÒª¶ÔһЩÃû³Æ¡¢µØÖ·Ê²Ã´µÄ½øÐÐÕªÒªÌáÈ¡¡¢²ð·ÖµÈµÈ¡£Õⲿ·ÖÊÇÒÔjavaʵÏֵģ¬loadjavaµ½OracleÖÐ×ö³ÉÏàÓ¦µÄ´¦Àíº¯Êý¡£
ÔÚÕâÀÈçºÎÔÚOracleÖм¯³Éjava´ó¼Ò¿ÉÒÔÔÚÍøÉÏÇáËÉÕÒµ½£¬ÕâÀï¾Í²»Ïêϸ˵Ã÷ÁË¡£Ö÷Òª×ÅÖØËµÃ÷һЩÐèҪעÒâµÄϸ½Ú£º
1£ºÔÚloadjavaµÄʱºò£¬×îºÃ¼ÓÉÏ“-genmissing”²ÎÊý£¬ÕâÑù£¬ÔÚ¶ÔÓ¦µÄjar»òjavaÎļþÉÏ´«ºó£¬Oracle»áÂíÉϼÓÔØÃ¿¸öÀ࣬Èç¹ûÓдíÎ󣬻áÂíÉÏÔÚÃüÁîÐÐÖÐÏêϸÁгö£¬´Ó¶ø±ÜÃâÁËÔÚÔËÐÐÖгö´í¡£ÔËÐÐÖгö´íÓÐʱºò±¨´íÐÅÏ¢ºÜ´Öª£¬ºÜÄÑÅŲ飡
2£ºÈç¹ûÔÚjava³ÌÐòÖÐÇ£Éæµ½¶Ôϵͳ»·¾³±äÁ¿¡¢´ÅÅÌ¡¢IOͨµÀµÈ×ÊÔ´µÄ¶Áд£¬Ò»¶¨ÒªÏȸøÏà¹ØÓû§ÊÚȨ£¬Ò»°ãÈçÏ£º
xecute dbms_java.grant_permission( 'XSDPP','SYS:java.util.PropertyPermission', 'dic.dir', 'write' )
execute DBMS_JAVA.grant_permission('XSDPP', 'SYS:java.io.FilePermission', '<>', 'read ......
Õâ¶Îʱ¼äΪ¹«Ë¾ÄÚ²¿µÄÊý¾Ý´¦Àí¿ª·¢ÁËÒ»¸ö¹¤¾ß£¬Ç£Éæµ½ÔÚOracleÖм¯³ÉjavaÓ¦Óã¬×ܽáÁËһЩ¾Ñ飬ÒÔ¹©´ó¼Ò²Î¿¼ÁË£¡
³ÌÐò·ÖÁ½²¿·Ö£¬Ç°¶Ë½çÃæÓÉVB/VC¿ª·¢£¬Ö÷ҪʵÏÖÊý¾Ý´¦ÀíÅäÖü°³£¹æ¼Ç¼ÔËË㣬Õⲿ·ÖûÓÐʲôºÃ˵µÄÁË¡£
ºǫ́ÒÔOracleΪÊý¾Ý»ù´¡´¦ÀíÍÐ¹ÜÆ½Ì¨£¬ÔÚÊý¾Ý´¦Àí¹ý³ÌÖУ¬ÐèÒª¶ÔһЩÃû³Æ¡¢µØÖ·Ê²Ã´µÄ½øÐÐÕªÒªÌáÈ¡¡¢²ð·ÖµÈµÈ¡£Õⲿ·ÖÊÇÒÔjavaʵÏֵģ¬loadjavaµ½OracleÖÐ×ö³ÉÏàÓ¦µÄ´¦Àíº¯Êý¡£
ÔÚÕâÀÈçºÎÔÚOracleÖм¯³Éjava´ó¼Ò¿ÉÒÔÔÚÍøÉÏÇáËÉÕÒµ½£¬ÕâÀï¾Í²»Ïêϸ˵Ã÷ÁË¡£Ö÷Òª×ÅÖØËµÃ÷һЩÐèҪעÒâµÄϸ½Ú£º
1£ºÔÚloadjavaµÄʱºò£¬×îºÃ¼ÓÉÏ“-genmissing”²ÎÊý£¬ÕâÑù£¬ÔÚ¶ÔÓ¦µÄjar»òjavaÎļþÉÏ´«ºó£¬Oracle»áÂíÉϼÓÔØÃ¿¸öÀ࣬Èç¹ûÓдíÎ󣬻áÂíÉÏÔÚÃüÁîÐÐÖÐÏêϸÁгö£¬´Ó¶ø±ÜÃâÁËÔÚÔËÐÐÖгö´í¡£ÔËÐÐÖгö´íÓÐʱºò±¨´íÐÅÏ¢ºÜ´Öª£¬ºÜÄÑÅŲ飡
2£ºÈç¹ûÔÚjava³ÌÐòÖÐÇ£Éæµ½¶Ôϵͳ»·¾³±äÁ¿¡¢´ÅÅÌ¡¢IOͨµÀµÈ×ÊÔ´µÄ¶Áд£¬Ò»¶¨ÒªÏȸøÏà¹ØÓû§ÊÚȨ£¬Ò»°ãÈçÏ£º
xecute dbms_java.grant_permission( 'XSDPP','SYS:java.util.PropertyPermission', 'dic.dir', 'write' )
execute DBMS_JAVA.grant_permission('XSDPP', 'SYS:java.io.FilePermission', '<>', 'read ......