ʲôÊÇjava¶ÔÏóµÄÇ¿¡¢Èí¡¢ÈõºÍÐéÒýÓÃ
±¾ÎĽéÉܶÔÏóµÄÇ¿¡¢Èí¡¢ÈõºÍÐéÒýÓõĸÅÄî¡¢Ó¦Óü°ÆäÔÚUMLÖеıíʾ¡£
1£®¶ÔÏóµÄÇ¿¡¢Èí¡¢ÈõºÍÐéÒýÓÃ
ÔÚJDK 1.2ÒÔǰµÄ°æ±¾ÖУ¬ÈôÒ»¸ö¶ÔÏó²»±»ÈκαäÁ¿ÒýÓã¬ÄÇô³ÌÐò¾ÍÎÞ·¨ÔÙʹÓÃÕâ¸ö¶ÔÏó¡£Ò²¾ÍÊÇ˵£¬Ö»ÓжÔÏó´¦ÓÚ¿É´¥¼°£¨reachable£©×´Ì¬£¬³ÌÐò²ÅÄÜʹÓÃËü¡£´ÓJDK 1.2°æ±¾¿ªÊ¼£¬°Ñ¶ÔÏóµÄÒýÓ÷ÖΪ4ÖÖ¼¶±ð£¬´Ó¶øÊ¹³ÌÐòÄܸü¼ÓÁé»îµØ¿ØÖƶÔÏóµÄÉúÃüÖÜÆÚ¡£Õâ4ÖÖ¼¶±ðÓɸߵ½µÍÒÀ´ÎΪ£ºÇ¿ÒýÓá¢ÈíÒýÓá¢ÈõÒýÓúÍÐéÒýÓá£Í¼1Ϊ¶ÔÏóÓ¦ÓÃÀà²ã´Î¡£
ͼ1
¢ÅÇ¿ÒýÓã¨StrongReference£©
Ç¿ÒýÓÃÊÇʹÓÃ×îÆÕ±éµÄÒýÓá£Èç¹ûÒ»¸ö¶ÔÏó¾ßÓÐÇ¿ÒýÓã¬ÄÇÀ¬»ø»ØÊÕÆ÷¾ø²»»á»ØÊÕËü¡£µ±ÄÚ´æ¿Õ¼ä²»×㣬JavaÐéÄâ»úÄþÔ¸Å׳öOutOfMemoryError´íÎó£¬Ê¹³ÌÐòÒì³£ÖÕÖ¹£¬Ò²²»»á¿¿ËæÒâ»ØÊÕ¾ßÓÐÇ¿ÒýÓõĶÔÏóÀ´½â¾öÄÚ´æ²»×ãµÄÎÊÌâ¡£
¢ÆÈíÒýÓã¨SoftReference£©
Èç¹ûÒ»¸ö¶ÔÏóÖ»¾ßÓÐÈíÒýÓã¬ÔòÄÚ´æ¿Õ¼ä×ã¹»£¬À¬»ø»ØÊÕÆ÷¾Í²»»á»ØÊÕËü£»Èç¹ûÄÚ´æ¿Õ¼ä²»×ãÁË£¬¾Í»á»ØÊÕÕâЩ¶ÔÏóµÄÄÚ´æ¡£Ö»ÒªÀ¬»ø»ØÊÕÆ÷ûÓлØÊÕËü£¬¸Ã¶ÔÏó¾Í¿ÉÒÔ±»³ÌÐòʹÓá£ÈíÒýÓÿÉÓÃÀ´ÊµÏÖÄÚ´æÃô¸ÐµÄ¸ßËÙ»º´æ£¨ÏÂÎĸø³öʾÀý£©¡£
ÈíÒýÓÿÉÒÔºÍÒ»¸öÒýÓöÓÁУ¨ReferenceQueue£©ÁªºÏʹÓã¬Èç¹ûÈíÒýÓÃËùÒýÓõĶÔÏó±»À¬»ø»ØÊÕÆ÷»ØÊÕ£¬JavaÐéÄâ»ú¾Í»á°ÑÕâ¸öÈíÒýÓüÓÈëµ½ÓëÖ®¹ØÁªµÄÒýÓöÓÁÐÖС£
¢ÇÈõÒýÓã¨WeakReference£©
ÈõÒýÓÃÓëÈíÒýÓõÄÇø±ðÔÚÓÚ£ºÖ»¾ßÓÐÈõÒýÓõĶÔÏóÓµÓиü¶ÌÔݵÄÉúÃüÖÜÆÚ¡£ÔÚÀ¬»ø»ØÊÕÆ÷Ïß³ÌɨÃèËüËù¹ÜϽµÄÄÚ´æÇøÓòµÄ¹ý³ÌÖУ¬Ò»µ©·¢ÏÖÁËÖ»¾ßÓÐÈõÒýÓõĶÔÏ󣬲»¹Üµ±Ç°ÄÚ´æ¿Õ¼ä×ã¹»Óë·ñ£¬¶¼»á»ØÊÕËüµÄÄÚ´æ¡£²»¹ý£¬ÓÉÓÚÀ¬»ø»ØÊÕÆ÷ÊÇÒ»¸öÓÅÏȼ¶ºÜµÍµÄỊ̈߳¬Òò´Ë²»Ò»¶¨»áºÜ¿ì·¢ÏÖÄÇЩֻ¾ßÓÐÈõÒýÓõĶÔÏó¡£
ÈõÒýÓÿÉÒÔºÍÒ»¸öÒýÓöÓÁУ¨ReferenceQueue£©ÁªºÏʹÓã¬Èç¹ûÈõÒýÓÃËùÒýÓõĶÔÏó±»À¬»ø»ØÊÕ£¬JavaÐéÄâ»ú¾Í»á°ÑÕâ¸öÈõÒýÓüÓÈëµ½ÓëÖ®¹ØÁªµÄÒýÓöÓÁÐÖС£
¢ÈÐéÒýÓã¨PhantomReference£©
“ÐéÒýÓÔ¹ËÃû˼Ò壬¾ÍÊÇÐÎͬÐéÉ裬ÓëÆäËû¼¸ÖÖÒýÓö¼²»Í¬£¬ÐéÒýÓò¢²»»á¾ö¶¨¶ÔÏóµÄÉúÃüÖÜÆÚ¡£Èç¹ûÒ»¸ö¶ÔÏó½ö³ÖÓÐÐéÒýÓã¬ÄÇôËü¾ÍºÍûÓÐÈκÎÒýÓÃÒ»Ñù£¬ÔÚÈκÎʱºò¶¼¿ÉÄܱ»À¬»ø»ØÊÕÆ÷»ØÊÕ¡£
ÐéÒýÓÃÖ÷ÒªÓÃÀ´¸ú×Ù¶ÔÏó±»À¬»ø»ØÊÕÆ÷»ØÊյĻ¡£ÐéÒýÓÃÓëÈíÒýÓúÍÈõÒýÓõÄÒ»¸öÇø±ðÔÚÓÚ£ºÐéÒýÓñØÐëºÍÒýÓöÓÁÐ £¨ReferenceQueue£©ÁªºÏʹÓᣵ±À¬»ø»ØÊÕÆ÷×¼±¸»ØÊÕÒ»¸ö¶ÔÏóʱ£¬Èç¹û·¢ÏÖËü»¹ÓÐÐéÒýÓ㬾ͻáÔÚ»ØÊÕ¶ÔÏ
Ïà¹ØÎĵµ£º
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class LRU {
int blockCount;
int seriaCount;
int[] address;
int[] stack;
BufferedReader br;
public static void main(String[] args) {
// int address[] = { 1, 2,3, 2, 8, 4, 3 ......
1¡¢Óï·¨£º±ØÐë±È½ÏÊìϤ£¬ÔÚд´úÂëµÄʱºò IDE µÄ±à¼Æ÷¶ÔijһÐб¨´íÓ¦¸ÃÄܹ»¸ù¾Ý±¨´íÐÅÏ¢ÖªµÀÊÇʲôÑùµÄÓï·¨´íÎó²¢ÇÒÖªµÀÈκÎÐÞÕý¡£
2¡¢ÃüÁ±ØÐëÊìϤ JDK ´øµÄһЩ³£ÓÃÃüÁî¼°Æä³£ÓÃÑ¡ÏÃüÁîÖÁÉÙÐèÒªÊìϤ£ºappletviewer¡¢HtmlConverter¡¢jar¡¢java¡¢javac¡¢javadoc¡¢javap¡¢javaw¡¢native2ascii¡¢serialve ......
Ëõ·ÅͼÏñµÄ»ù±¾ÔÀíÊÇ´´½¨Ò»¸öÄ¿±ê´óСµÄ»²¼£¬È»ºó¶ÁȡԴͼÏñ£¬²¢½«¸ÃͼÏñ»æÖÆÕâ¸ö»²¼ÉÏ¡£ÎªÁËʹ³ÌÐòͨÓã¬Ô´Í¼ÏñºÍËõ·ÅºóµÄÄ¿±êͼÏñÓ¦Ó÷ֱðʹÓà InputStreamºÍOutputStreamÀ´±íʾ£¬´úÂëÈçÏ£º
public static void scaleImage(InputStream imgInputStrea ......
Ê×ÏÈ´ÓÒ»µÀÃæÊÔÌâĿ̸Æð:
package pkg1;
public class Jupiter
{
void method1(){
System.out.println("In Jupiter");
}
public void call(){
method1();
}
}
package pkg2;
import pkg1.Jupiter;
public class Minerva extends Jupiter{
public void method1(){
......