JAVAÐéÄâ»úÄÚ´æÉèÖÃ
»ù±¾¸ÅÄ
PermGen space£ºÈ«³ÆÊÇPermanent Generation space¡£¾ÍÊÇ˵ÊÇÓÀ¾Ã±£´æµÄÇøÓò,ÓÃÓÚ´æ·ÅClassºÍMetaÐÅÏ¢,ClassÔÚ±»LoadµÄʱºò±»·ÅÈë¸ÃÇøÓò
Heap space£º´æ·ÅInstance¡£ GC(Garbage Collection)Ó¦¸Ã²»»á¶ÔPermGen space½øÐÐÇåÀí
ËùÒÔÈç¹ûÄãµÄAPP»áLOADºÜ¶àCLASSµÄ»°,¾ÍºÜ¿ÉÄܳöÏÖPermGen space´íÎó
Java Heap·ÖΪ3¸öÇø£¬Young£¬OldºÍPermanent¡£Young±£´æ¸ÕʵÀý»¯µÄ¶ÔÏó¡£µ±¸ÃÇø±»ÌîÂúʱ£¬GC»á½«¶ÔÏóÒÆµ½OldÇø¡£PermanentÇøÔò¸ºÔð±£´æ·´Éä¶ÔÏó ¡£
JVMÓÐ2¸öGCÏ̡߳£µÚÒ»¸öÏ̸߳ºÔð»ØÊÕHeapµÄYoungÇø¡£µÚ¶þ¸öÏß³ÌÔÚHeap²»×ãʱ£¬±éÀúHeap£¬½«Young ÇøÉý¼¶ÎªOlderÇø¡£OlderÇøµÄ´óСµÈÓÚ-Xmx¼õÈ¥-Xmn£¬²»Äܽ«-XmsµÄÖµÉèµÄ¹ý´ó£¬ÒòΪµÚ¶þ¸öÏ̱߳»ÆÈÔËÐлήµÍJVMµÄÐÔÄÜ¡£
ΪʲôһЩ³ÌÐòƵ·±·¢ÉúGC£¿ÓÐÈçÏÂÔÒò£º
l ³ÌÐòÄÚµ÷ÓÃÁËSystem.gc()»òRuntime.gc()¡£
l һЩÖмä¼þÈí¼þµ÷ÓÃ×Ô¼ºµÄGC ·½·¨£¬´ËʱÐèÒªÉèÖòÎÊý½ûÖ¹ÕâЩGC¡£
l JavaµÄHeap̫С£¬Ò»°ãĬÈϵÄHeapÖµ¶¼ºÜС¡£
l Ƶ·±ÊµÀý»¯¶ÔÏó£¬Release¶ÔÏó¡£´Ëʱ¾¡Á¿±£´æ²¢ÖØÓöÔÏó£¬ÀýÈçʹÓÃStringBuffer()ºÍString()¡£
Èç¹ûÄã·¢ÏÖÿ´ÎGCºó£¬HeapµÄÊ£Óà¿Õ¼ä»áÊÇ×ܿռäµÄ50%£¬Õâ±íʾÄãµÄHeap´¦ÓÚ½¡¿µ×´Ì¬¡£Ðí¶àServer¶ËµÄJava³ÌÐòÿ´ÎGCºó×îºÃÄÜÓÐ65%µÄÊ£Óà¿Õ¼ä¡£
¾Ñé̸֮£º
1 £® Server ¶Ë JVM ×îºÃ½« -Xms ºÍ -Xmx ÉèΪÏàֵͬ¡£ÎªÁËÓÅ»¯ GC £¬×îºÃÈà -Xmn ÖµÔ¼µÈÓÚ -Xmx µÄ 1/3[2] ¡£
2 £®Ò»¸ö GUI ³ÌÐò×îºÃÊÇÿ 10 µ½ 20 Ãë¼äÔËÐÐÒ»´Î GC £¬Ã¿´ÎÔÚ°ëÃëÖ®ÄÚÍê³É [2] ¡£
×¢Ò⣺
1£®Ôö¼ÓHeapµÄ´óСËäÈ»»á½µµÍGCµÄƵÂÊ£¬µ«Ò²Ôö¼ÓÁËÿ´ÎGCµÄʱ¼ä¡£²¢ÇÒGCÔËÐÐʱ£¬ËùÓеÄÓû§Ï߳̽«ÔÝÍ££¬Ò²¾ÍÊÇGCÆÚ¼ä£¬JavaÓ¦ÓóÌÐò²»×öÈκι¤×÷¡£
2£®Heap´óС²¢²»¾ö¶¨½ø³ÌµÄÄÚ´æÊ¹ÓÃÁ¿¡£½ø³ÌµÄÄÚ´æÊ¹ÓÃÁ¿Òª´óÓÚ-Xmx¶¨ÒåµÄÖµ£¬ÒòΪJavaΪÆäËûÈÎÎñ·ÖÅäÄڴ棬ÀýÈçÿ¸öÏ̵߳ÄStackµÈ¡£
StackµÄÉ趨
ÿ¸öÏ̶߳¼ÓÐËû×Ô¼ºµÄStack¡£ -Xss ÿ¸öÏß³ÌµÄ Stack ´óС
StackµÄ´óСÏÞÖÆ×ÅÏ̵߳ÄÊýÁ¿¡£Èç¹ûStack¹ý´ó¾ÍºÃµ¼ÖÂÄÚ´æÒç©¡£-Xss²ÎÊý¾ö¶¨Stack´óС£¬ÀýÈç-Xss1024K¡£Èç¹ûStack̫С£¬Ò²»áµ¼ÖÂStackÒç©¡£
Ó²¼þ»·¾³
Ó²¼þ»·¾³Ò²Ó°ÏìGCµÄЧÂÊ£¬ÀýÈç»úÆ÷µÄÖÖÀ࣬ÄÚ´
Ïà¹ØÎĵµ£º
¼ÇµÃvamcily ÔøÎÊÎÒ£º“Ϊʲô»ñÈ¡Êý×éµÄ³¤¶ÈÓÃ.length(³ÉÔ±±äÁ¿µÄÐÎʽ)£¬¶ø»ñÈ¡StringµÄ³¤¶ÈÓÃ.length()(³ÉÔ±·½·¨µÄÐÎʽ)£¿”
ÎÒµ±Ê±Ò»Ìý£¬¾õµÃÎʵúÜÓеÀÀí¡£×öͬÑùÒ»¼þÊÂÇ飬Ϊʲô²ÉÓÃÁ½ÖÖ·ç¸ñåÄÒìµÄ·ç¸ñÄØ£¿¿öÇÒ£¬JavaÖеÄÊý×éÆäʵÊÇÍ걸(full-fledged)µÄ¶ÔÏó£¬Ö±½Ó±©Â¶³ÉÔ±±äÁ¿£¬¿ÉÄܲ»ÊÇÒ»ÖÖºÜOOµÄ·ç¸ñ¡£ ......
Ò»¸öJava½Ó¿Ú(Interface)ÊÇһЩ·½·¨ÌØÕ÷µÄ¼¯ºÏ£¬ÕâЩ·½·¨ÌØÕ÷µ±È»À´×ÔÓÚ¾ßÌåµÄ·½·¨£¬µ«ÊÇËüÃÇÒ»°ã¶¼À´×ÔÓÚϵͳÖв»¶Ï³öÏֵķ½·¨¡£Ò»¸ö½Ó¿ÚÖ»Óз½·¨µÄÌØÕ÷£¬¶øÃ»Óз½·¨µÄʵÏÖ£¬Òò´ËÕâЩ·½·¨ÔÚ²»Í¬µÄµØ·½±»ÊµÏÖʱ£¬¿ÉÒÔÓÐÍêÈ«²»Í¬µÄÐÐΪ¡£ÔÚJavaÓïÑԵģ¬Java½Ó¿Ú»¹¿ÉÒÔ¶¨ÒåPublic³£Á¿¡£ ......
³ÌÐòÊǺܼòÒ׵ġ£È»¶ø£¬ÔÚ±à³ÌÈËÔ±ÃæÇ°£¬¶àÏ̳߳ÊÏÖ³öÁËÒ»×éеÄÄÑÌ⣬Èç¹ûûÓб»Ç¡µ±µÄ½â¾ö£¬½«µ¼ÖÂÒâÍâµÄÐÐΪÒÔ¼°Ï¸Î¢µÄ¡¢ÄÑÒÔ·¢ÏֵĴíÎó¡£
ÔÚ±¾ÆªÎÄÕÂÖУ¬ÎÒÃÇÕë¶ÔÕâЩÄÑÌâÖ®Ò»£ºÈçºÎÖжÏÒ»¸öÕýÔÚÔËÐеÄÏ̡߳£
& ......
Ò»¡¢ÀûÓÃClass.forNameº¯Êý£¨ÓÃjava¿ª·¢B/SģʽµÄ³ÌÐò£© 1.´úÂëÈçÏ£º //×¢²áÇý¶¯³ÌÐò
public boolean connectDb() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
return true;
} catch (ClassNotFoundException e) {
System.out.println(e);
return false;
}
}
......
package com.wicresoft.jpo;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
publi ......