JAVAÄÚ´æÒç³ö½âÎö
ÔÒòÓкܶàÖÖ£¬±ÈÈ磺
1.Êý¾ÝÁ¿¹ýÓÚÅÓ´ó£»ËÀÑ»·
£»¾²Ì¬±äÁ¿ºÍ¾²Ì¬·½·¨¹ý¶à£»µÝ¹é£»ÎÞ·¨È·¶¨ÊÇ·ñ±»ÒýÓõĶÔÏó£»
2.ÐéÄâ»ú²»»ØÊÕÄڴ棨ÄÚ´æÐ¹Â©£©£»
˵°×Á˾ÍÊdzÌÐòÔËÐÐÒªÓõ½µÄÄÚ´æ´óÓÚÐéÄâ»úÄÜÌṩµÄ×î´óÄÚ´æ¾Í·¢ÉúÄÚ´æÒç³öÁË¡£
ÄÚ´æÒç³öµÄÎÊÌâÒª¿´ÒµÎñºÍϵͳ´óС¶ø¶¨£¬¶ÔÓÚijЩϵͳ¿ÉÄÜÄÚ´æÒç³ö²»³£¼û£¬µ«Ä³Ð©ÏµÍ³»¹ÊǺܳ£¼ûµÄ½â¾öµÄ·½·¨£¬
Ò»¸öÊÇÓÅ»¯³ÌÐò´úÂ룬Èç¹ûÒµÎñÅÓ´ó£¬Âß¼¸´ÔÓ£¬¾¡Á¿¼õÉÙÈ«¾Ö±äÁ¿µÄÒýÓã¬ÈóÌÐòʹÓÃÍê±äÁ¿µÄʱºòÊͷŸÃÒýÓÃÄܹ»ÈÃÀ¬»ø»ØÊÕÆ÷»ØÊÕ£¬ÊÍ·Å×ÊÔ´¡£
¶þ¾ÍÊÇÎïÀí½â¾ö£¬Ôö´óÎïÀíÄڴ棬Ȼºóͨ¹ý£º-Xms256m
-Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256mµÄÐÞ¸Ä
Ò»¡¢ÄÚ´æÒç³öÀàÐÍ
1
¡¢ java.lang.OutOfMemoryError: PermGen space
JVM
¹ÜÀíÁ½ÖÖÀàÐ͵ÄÄڴ棬¶ÑºÍ·Ç¶Ñ¡£¶ÑÊǸø¿ª·¢ÈËÔ±ÓõÄÉÏÃæËµµÄ¾ÍÊÇ£¬ÊÇÔÚ JVM Æô¶¯Ê±´´½¨£»·Ç¶ÑÊÇÁô¸ø JVM ×Ô¼ºÓõģ¬ÓÃÀ´´æ·ÅÀàµÄÐÅÏ¢µÄ¡£ËüºÍ¶Ñ²»Í¬£¬ÔËÐÐÆÚÄÚ
GC ²»»áÊͷſռ䡣Èç¹û web app ÓÃÁË´óÁ¿µÄµÚÈý·½ jar »òÕßÓ¦ÓÃÓÐÌ«¶àµÄ class Îļþ¶øÇ¡ºÃ MaxPermSize
ÉèÖýÏС£¬³¬³öÁËÒ²»áµ¼ÖÂÕâ¿éÄÚ´æµÄÕ¼Óùý¶àÔì³ÉÒç³ö£¬»òÕß tomcat ÈȲ¿Êðʱºî²»»áÇåÀíÇ°Ãæ¼ÓÔØµÄ»·¾³£¬Ö»»á½« context
¸ü¸ÄΪв¿ÊðµÄ£¬·Ç¶Ñ´æµÄÄÚÈݾͻáÔ½À´Ô½¶à¡£
2
¡¢ java.lang.OutOfMemoryError: Java heap space
µÚÒ»ÖÖÇé¿öÊǸö²¹³ä£¬Ö÷Òª´æÔÚÎÊÌâ¾ÍÊdzöÏÖÔÚÕâ¸öÇé¿öÖС£ÆäĬÈϿռä
( ¼´ -Xms) ÊÇÎïÀíÄÚ´æµÄ 1/64 £¬×î´ó¿Õ¼ä (-Xmx) ÊÇÎïÀíÄÚ´æµÄ 1/4 ¡£Èç¹ûÄÚ´æÊ£Ó಻µ½ 40 £¥£¬ JVM ¾Í»áÔö´ó¶Ñµ½ Xmx
ÉèÖõÄÖµ£¬ÄÚ´æÊ£Ó೬¹ý 70 £¥£¬ JVM ¾Í»á¼õС¶Ñµ½ Xms ÉèÖõÄÖµ¡£ËùÒÔ·þÎñÆ÷µÄ Xmx ºÍ Xms ÉèÖÃÒ»°ãÓ¦¸ÃÉèÖÃÏàͬ±ÜÃâÿ´Î GC
ºó¶¼Òªµ÷ÕûÐéÄâ»ú¶ÑµÄ´óС¡£¼ÙÉèÎïÀíÄÚ´æÎÞÏÞ´ó£¬ÄÇô JVM ÄÚ´æµÄ×î´óÖµ¸ú²Ù×÷ϵͳÓйأ¬Ò»°ã 32 λ»úÊÇ 1.5g µ½ 3g Ö®¼ä£¬¶ø 64
λµÄ¾Í²»»áÓÐÏÞÖÆÁË¡£
×¢Ò⣺Èç¹û
Xms ³¬¹ýÁË Xmx Öµ£¬»òÕß¶Ñ×î´óÖµºÍ·Ç¶Ñ×î´óÖµµÄ×ܺͳ¬¹ýÁËÎïÀíÄÚ´æ»òÕß²Ù×÷ϵͳµÄ×î´óÏÞÖÆ¶¼»áÒýÆð·þÎñÆ÷Æô¶¯²»ÆðÀ´¡£
À¬»ø»ØÊÕ
GC µÄ½ÇÉ«
JVM
µ÷Óà GC µÄƵ¶È»¹ÊǺܸߵģ¬Ö÷ÒªÁ½ÖÖÇé¿öϽøÐÐÀ¬»ø»ØÊÕ£º
µ±Ó¦ÓóÌÐòÏ߳̿ÕÏУ»ÁíÒ»¸öÊÇ
java ÄÚ´æ¶Ñ²»×ãʱ£¬»á²»¶Ïµ÷Óà GC £¬ÈôÁ¬Ðø»ØÊÕ¶¼½â¾ö²»ÁËÄÚ´æ¶Ñ²»×ãµÄÎÊÌâʱ£¬¾Í»á±¨ out of memory
´íÎó¡£ÒòΪÕâ¸öÒì³£¸ù¾ÝϵͳÔËÐл·¾³¾ö¶¨£¬ËùÒÔÎÞ·¨Ô¤ÆÚËüºÎʱ³öÏÖ¡£
¸ù¾Ý
GC
Ïà¹ØÎĵµ£º
±¾³ÌÐò¿ÉÒÔʵÏÖѧÉúÐÅϢ¼ÈëºÍ²é¿´¡£
ÒªÇó£º
£¨1£©ÀûÓÃSwingÉè¼ÆÍ¼ÐÎÓû§½çÃæ£¬½çÃæ°üÀ¨£ºÑ§ÉúÐÅϢ¼ÈëºÍÏÔʾѧÉúÐÅÏ¢£»
£¨2£©Ìí¼ÓѧÉúÐÅÏ¢£ºÊµÏÖÍù¼¯ºÏÀïÌí¼ÓѧÉúÐÅÏ¢£¨Ñ§ºÅ,ÐÕÃû,ÐԱ𣬳ɼ¨£©
×¢Ò⣺Óû§ÊäÈëÐÅÏ¢µÄÑéÖ¤¡£
£¨3£©ÐÞ¸ÄѧÉúÐÅÏ¢£ºÓÉÓû§ÊäÈëѧÉúµÄѧºÅ£¬³ÌÐòÑéÖ¤ÊÇ·ñÓдËѧÉú ......
1. JavaÓïÑÔ»ù´¡
̸µ½JavaÓïÑÔ»ù´¡Ñ§Ï°µÄÊé¼®£¬´ó¼Ò¿Ï¶¨»áÍÆ¼öBruce EckelµÄ¡¶Thinking in Java¡·¡£ËüÊÇÒ»±¾Ð´µÄÏ൱Éî¿ÌµÄ¼¼ÊõÊé¼®£¬JavaÓïÑÔ»ù´¡²¿·Ö»ù±¾Ã»ÓÐÆäËüÈκÎÒ»±¾Êé¿ÉÒÔ³¬Ô½Ëü¡£¸ÃÊéµÄ×÷ÕßBruce EckelÔÚÍøÂçÉϱ»³ÆÎªÌì²ÅµÄͶ»úÕߣ¬×÷Õߵġ¶Thinking in C++¡·ÔÚ1995ÄêÔø»ñSoftwareDevelopment Jolt Award×î¼ÑÊ ......
JDK1.4ÖÐ
Map map = new HashMap();
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
}
JDK1.5ÖÐ,Ó¦ÓÃÐÂÌØÐÔFor-EachÑ»·
Map m = new HashMap();
......
Ò»¸öÓÉ Carol Hamer дµÄ±È½ÏÓдú±íÐÔµÄÔ´Â룬×÷ÕßÈ«Á¦ÍƼö£¬ÓÈÆäÊǶÔÓÚûÓÐ J2ME ¿ª·¢¾ÑéµÄÅóÓÑ¡£×Ô¼º¶¯ÊÖÇóöÒÔÏÂÌù³öµÄ Hello.java ºÍ HelloCanvas.java Ô´Â룬²¢ÔËÐУ¬ÓÃÐÄÌå»áһϡ£ÏàÐÅÄãÀí½âÁË´ËÔ´ÂëÖ®ºó£¬¼´¿É²½Èë J2ME ¿ª·¢¡£
×¢ÊͶ¼ÔÚÔ´ÂëÀÔËÐл·¾³×Ô¼ºÅ䣬×Ô¼º¶¯ÊÖ¿´ÔËÐÐЧ¹û£¬Àí½âÖ®ºó£¬È»ºó¶¯ÊÖÐÞ ......
RMI£¨Remote Method Invocation£©
RMIÊÇ·Ö²¼Ê½¶ÔÏóÈí¼þ°ü£¬Ëü¼ò»¯ÁËÔÚ¶ą̀¼ÆËã»úÉϵÄJAVAÓ¦ÓÃÖ®¼äµÄͨÐÅ¡£
±ØÐëÔÚjdk1.1ÒÔÉÏ
RMIÓõ½µÄÀà
java.rmi.Remote ËùÓпÉÒÔ±»Ô¶³Ìµ÷ÓõĶÔÏó¶¼±ØÐëʵÏָýӿÚ
java.rmi.server.UnicastRemoteObject ËùÓпÉÒÔ±»Ô¶³Ìµ÷ÓõĶÔÏó¶¼±ØÐëÀ©Õ¹¸ÃÀà
ʲôÊÇRMI
Ô¶³Ì·½·¨µ÷ÓÃÊÇ ......