JAVAÓÅ»¯±à³Ì
java´úÂëÓÅ»¯±à³Ì
1.JVM ¹ÜÀíÁ½ÖÖÀàÐ͵ÄÄÚ´æ:¶ÑÄÚ´æ(heap),Õ»ÄÚ´æ(stack),¶ÑÄÚÔÚÖ÷ÒªÓÃÀ´´æ´¢³ÌÐòÔÚÔËÐÐʱ´´½¨»òʵÀý»¯µÄ¶ÔÏóÓë±äÁ¿.¶øÕ»ÄÚ´æÔòÊÇÓÃÀ´´æ´¢³ÌÐò´úÂëÖÐÉùÃ÷Ϊ¾²Ì¬(static)(»ò·Ç¾²Ì¬)µÄ·½·¨.
2.JVM ÖжÔÏóµÄÉúÃüÖÜÆÚ,´´½¨½×¶Î,Ó¦Óý׶Î,²»¿ÉÊÓ½×¶Î,²»¿Éµ½´ï½×¶Î,¿ÉÊÕ¼¯½×¶Î,ÖÕ½á½×
¶Î,ÊͷŽ׶Î
3.±ÜÃâÔÚÑ»·ÌåÖд´½¨¶ÔÏó,¼´Ê¹¸Ã¶ÔÏóµãÓÃÄÚ´æ¿Õ¼ä²»´ó.
for(int i=0;i<10000;++i){
Object obj = new Object();
System.out.println("obj="+obj);
}
Ó¦¸Ä³É
Object obj = null;
for(int i=0;i<10000;++i){
obj = new Object();
System.out.println("obj="+obj);
}
4.ÈíÒýÓõÄÖ÷ÒªÌØµãÊǾßÓнÏÇ¿µÄÒýÓù¦ÄÜ.Ö»Óе±ÄÚ´æ²»¹»µÄʱºò,²Å»ØÊÕÕâÀàÄÚ´æ,Òò´ËÔÚ
ÄÚ´æ×ã¹»µÄʱºò,ËüÃÇͨ³£²»±»»ØÊÕ.Ëü¿ÉÒÔÓÃÓÚʵÏÖһЩ³£ÓÃ×ÊÔ´µÄ»º´æ,ʵÏÖCache µÄ¹¦ÄÜ
A a = new A();
SoftReference sr = new SoftReference(a);
a = null;
if(sr !=null){
a = sr.get();
}else{
a = new A();
sr = new SoftReference(a);
}
5.ÈõÒýÓöÔÏóÓëSoft ÒýÓöÔÏó×î´ó²»Í¬¾ÍÔÚÓÚ:GC ÔÚ½øÐлØÊÕʱ,ÐèҪͨ¹ýËã·¨¼ì²éÊÇ·ñ»Ø
ÊÕSoft ÒýÓöÔÏó,¶ø¶ÔÓÚWeak ÒýÓöÔÏó,GC ×ÜÊǽøÐлØÊÕ.
A a = new A();
WeakReference wr = new WeakReference(a);
a = null;
if(sr !=null){
a = wr.get();
}else{
a = new A();
wr = new WeakReference(a);
}
6.¹²Ïí¾²Ì¬±äÁ¿´æ´¢¿Õ¼ä
7.ÓÐʱºòÎÒÃÇΪÁËÌá¸ßϵͳÐÔÄÜ,±ÜÃâÖØ¸´ºÄʱµÄ²Ù×÷,Ï£ÍûÄܹ»ÖØÓÃһЩ´´½¨Íê³ÉµÄ¶ÔÏó,Àû
ÓöÔÏó³ØÊµÏÖ.ÀàËÆJDBC Á¬½Ó³Ø.
8.˲¼äÖµ,ÐòÁл¯¶ÔÏó´ó±äÁ¿Ê±,Èç¹û´Ë´ó±äÁ¿ÓÖûÓÐÓÃ;,ÔòʹÓÃtransient ÉùÃ÷,²»ÐòÁл¯´Ë±ä
Á¿.Í¬Ê±ÍøÂç´«ÊäÖÐÒ²²»´«Êä.
9.²»ÒªÌáǰ´´½¨¶ÔÏó
void f(){
int i;
A a = new A();
if(....){
a.showMessage();
}
}
¸Ä³É
void f(){
int i;
A a = null;
if(....){
//Óõ½Ê±²ÅʵÀý»¯
a = new A();
a.showMessage();
}
}
10 .(1)×î»ù±¾µÄ½¨Òé¾ÍÊǾ¡ÔçÊÍ·ÅÎÞÓöÔÏóµÄÒýÓÃ
A a = new A();
a = null; //µ±Ê¹ÓöÔÏóa Ö®ºóÖ÷¶¯½«ÆäÉèÖÃΪ¿Õ
(2)¾¡Á¿ÉÙÓÃfinalize º¯Êý.
(3) Èç¹ûÐèҪʹÓþ³£Óõ½µÄͼƬչ,¿ÉÒÔʹÓÃÈíÒýÓÃ.
(4) ×¢Ò⼯ºÏÊý¾ÝÀàÐÍ,°üÀ¨Êý×é,Ê÷µÈÊý¾Ý,ÕâЩÊý¾Ý½á¹¹¶ÔGC À´Ëµ,»ØÊÕ¸üΪ¸´ÔÓ,
(5) ¾¡Á¿±ÜÃâÔÚÀàµÄĬÈϹ¹ÔìÆ÷Öд´½¨,³õʼ»¯´óÁ¿µÄ¶ÔÏó,·ÀÖ¹ÔÚµ÷ÓÃÆä×ÔÀàµÄ¹¹ÔìÆ÷
ʱÔì³É²»±ØÒªµÄÄÚ´æ×ÊÔ´ÀË·Ñ.
(6) ¾¡Á¿±ÜÃâÇ¿ÖÆÏµÍ³×ö
Ïà¹ØÎĵµ£º
±¾ÎÄÃæÏòÓÚÄÇЩÈí¼þ¼Ü¹¹Ê¦£¬Éè¼ÆÊ¦ºÍ¿ª·¢ÈËÔ±£¬ËûÃÇÏëʹÓà IBM® Rational® Software Architect ´Ó Java™ Ô´´úÂëÀ´ÄæÏò¹¤³ÌÉú³É UML ÀàºÍÐòÁÐͼ¡£ ÄæÏò¹¤³Ì¾³£±»ÓÃÀ´´ÓÒÑÓеÄÔ´´úÂëÖÐÒÔÒ»ÖÖ³éÏóÄ£ÐÍ UML ¸ñʽÀ´»ñµÃ¶ªÊ§µÄÉè¼ÆÎĵµ£¬Æä¿ÉÒÔÓÃÀ´Ñо¿Ò»¸öϵͳµÄ¾²Ì¬½á¹¹ºÍ¶¯Ì¬ÐÐΪ£¬²¢ÓÃÓÚÀ©Õ¹ÐµÄÌØÐÔµ½²úÆ·¡£ ......
½ñÌìҪд¸öÔ¶³ÌÖØÆô·þÎñµÄ¹¦ÄÜ£¬ÎªÁË¿ª·¢ËÙ¶È£¬ÔÝʱ¶¨ÎªJava´úÂë+WMICÃüÁîµÄ·½·¨£¬¼òµ¥µÄ˵£¬¾ÍÊÇÀûÓÃJavaµ÷Óñ¾»úÓ¦ÓóÌÐòµÄ·½·¨¡£Éæ¼°µ½µÄJavaÀàÓÐjava.lang°üÀïÃæµÄRuntime¡¢Process¡¢ProcessBuilderÈý¸öÀ࣬ÒÔ¼°wmicÖÐÖØÆô·þÎñµÄÃüÁî¡£ÒòΪ֮ǰҲд¹ýÕâ·½ÃæµÄ¶«Î÷£¬ËùÒÔºÜϰ¹ßÐÔµÄд³öÁË´úÂ룺
&nb ......
jvm classLoader architecture£º
1. Bootstrap ClassLoader/Æô¶¯Àà¼ÓÔØÆ÷
Ö÷Òª¸ºÔðjdk_home/libĿ¼ÏµĺËÐÄ api »ò -Xbootclasspath Ñ¡ÏîÖ¸¶¨µÄjar°ü×°È빤×÷¡£
2. Extension ClassLoader/À©Õ¹Àà¼ÓÔØÆ÷
Ö÷Òª¸ºÔðjdk_home/lib/extĿ¼ÏµÄjar°ü»ò -Djava.ext.dirs Ö¸¶¨Ä¿Â¼ÏµÄjar°ü×°È빤×÷¡£
3 ......
ÈýÖÜǰ£¬¾ÍÓëͬѧԼ¶¨ºÃÁË£¬»¨ÈýÖÜʱ¼äд¸ö̰³ÔÉߣ¬¾ÍÓÃ×Ô¼ºÏÖÔÚËùѧµÄJava£¬ÎÒÏë¿ÉÒÔ°¡¡£Ñ§Ð£Àï½Ì²»³öʲô¶«Î÷£¬ÄǾÍ×Ô¼º¸ã°É£¡ÓÚÊÇÎÒÃÇÐÅÊĵ©µ©¿ªÊ¼Á˼¸Ìì¡£²»ÁÏÎåÒ»Ò»À´£¬°ÑËùÓеͼÀÏÂÁË¡£×îºóÒ»ÖÜÁË£¬Ã»°ì·¨£¬Í¨Ïü°É£¡ÓÚÊÇÁ¬Ðø¼¸Ìì¿à¸É£¬ÖÕÓÚд³öÀ´ÁË.ËäÈ»Óеã´Ö²Ú£¬ÒòΪѧУ»¹Ã»¿ªÊ¼½ÌGUIº ......
³£³£Óöµ½Êý×éÅÅÐòµÄÎÊÌâ.±ÈÈçÎÒÓÐÒ»¸öPersonÀà,ËüµÄʵÀý¶ÔÏó´æ´¢ÔÚArrayListÊý×éÖÐ,ÏÖÔÚÒª°ÑArrayListÊý×éÖеÄPerson¶ÔÏó°´ÕÕÄêÁäÅÅÐò.
ÆäʵÕâÖÖÇé¿ö¾³£Óöµ½.
ÏÂÃæ¸ø³öÔ´´úÂë:
1:Person.JavaÎļþ:-------------------------------
public class Person{
String name;
int age;
public Person(String name,int age){ ......