Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Java ÀíÂÛºÍʵ¼ù: ÓÃÈíÒýÓÃ×èÖ¹ÄÚ´æй© 2

ÔÚ Java ÀíÂÛºÍʵ¼ù µÄ Ç°Ò»ÆÚÎÄÕ ÖУ¬Java™ Çå½à¹¤³Ìʦ Brian Goetz ̽¾¿ÁËÈõÒýÓã¨weak references£©£¬ËüÈÃÄú¾¯¸æÀ¬»øÊÕ¼¯Æ÷£¬ÄúÏëҪά»¤Ò»¸ö¶ÔÏóµÄÒýÓ㬶ø²»»á×èÖ¹¸Ã¶ÔÏó±»À¬»øÊÕ¼¯¡£ÔÚ±¾ÆÚÎÄÕÂÖУ¬Ëû½«½âÊÍ Reference ¶ÔÏóµÄÁíÍâÒ»ÖÖÐÎʽ£¬¼´ÈíÒýÓã¨soft references£©£¬ÓÃÓÚ°ïÖúÀ¬»øÊÕ¼¯Æ÷¹ÜÀíÄÚ´æʹÓúÍÏû³ýDZÔÚµÄÄÚ´æй©¡£
À¬»øÊÕ¼¯¿ÉÒÔʹ Java ³ÌÐò²»»á³öÏÖÄÚ´æй©£¬ÖÁÉÙ¶ÔÓڱȽÏÏÁÕ­µÄ “ÄÚ´æй©” ¶¨ÒåÀ´ËµÈç´Ë£¬µ«ÊÇÕâ²¢²»Òâζ×ÅÎÒÃÇ¿ÉÒÔÍêÈ«ºöÂÔ Java ³ÌÐòÖеĶÔÏóÉú´æÆÚ£¨lifetime£©ÎÊÌâ¡£µ±ÎÒÃÇûÓжԶÔÏóÉúÃüÖÜÆÚ£¨lifecycle£©ÒýÆð×ã¹»µÄÖØÊÓ»òÕßÆÆ»µÁ˹ÜÀí¶ÔÏóÉúÃüÖÜÆڵıê×¼»úÖÆʱ£¬Java ³ÌÐòÖÐͨ³£¾Í»á³öÏÖÄÚ´æй©¡£ÀýÈ磬ÉÏÒ»´Î ÎÒÃÇ¿´µ½ÁË£¬²»ÄÜ»®·Ö¶ÔÏóµÄÉúÃüÖÜÆڻᵼÖ£¬ÔÚÊÔͼ½«ÔªÊý¾Ý¹ØÁªµ½Ë²Ê±¶ÔÏóʱ³öÏÖÒâÍâµÄ¶ÔÏó±£³Ö¡£»¹ÓÐһЩÆäËûµÄÇé¿ö¿ÉÒÔÀàËƵغöÂÔ»òÆÆ»µ¶ÔÏóÉúÃüÖÜÆÚ¹ÜÀí£¬²¢µ¼ÖÂÄÚ´æй©¡£
¶ÔÏóÓÎÀë
Ò»ÖÖÐÎʽµÄÄÚ´æй©ÓÐʱºò½Ð×ö¶ÔÏóÓÎÀ루object loitering£©£¬ÊÇͨ¹ýÇåµ¥ 1 ÖÐµÄ LeakyChecksum ÀàÀ´ËµÃ÷µÄ£¬Çåµ¥ 1 ÖÐÓÐÒ»¸ö getFileChecksum() ·½·¨ÓÃÓÚ¼ÆËãÎļþÄÚÈݵÄУÑéºÍ¡£getFileChecksum() ·½·¨½«ÎļþÄÚÈݶÁÈ¡µ½»º³åÇøÖÐÒÔ¼ÆËãУÑéºÍ¡£Ò»ÖÖ¸ü¼ÓÖ±¹ÛµÄʵÏÖ¼òµ¥µØ½«»º³åÇø×÷Ϊ getFileChecksum() Öеı¾µØ±äÁ¿·ÖÅ䣬µ«ÊǸð汾±ÈÄÇÑùµÄ°æ±¾¸ü¼Ó “´ÏÃ÷”£¬²»Êǽ«»º³åÇø»º´æÔÚʵÀý×Ö¶ÎÖÐÒÔ¼õÉÙÄÚ´æ churn¡£¸Ã “ÓÅ»¯”ͨ³£²»´øÀ´Ô¤Æڵĺô¦£»¶ÔÏó·ÖÅä±ÈºÜ¶àÈËÆÚÍûµÄ¸ü±ãÒË¡££¨»¹Òª×¢Ò⣬½«»º³åÇø´Ó±¾µØ±äÁ¿ÌáÉýµ½ÊµÀý±äÁ¿£¬Ê¹µÃÀàÈô²»´øÓи½¼ÓµÄͬ²½£¬¾Í²»ÔÙÊÇḬ̈߳²È«µÄÁË¡£Ö±¹ÛµÄʵÏÖ²»ÐèÒª½« getFileChecksum() ÉùÃ÷Ϊ synchronized£¬²¢ÇÒ»áÔÚͬʱµ÷ÓÃʱÌṩ¸üºÃµÄ¿ÉÉìËõÐÔ¡££©
Çåµ¥ 1. չʾ “¶ÔÏóÓÎÀë” µÄÀà

// BAD CODE - DO NOT EMULATE
public class LeakyChecksum {
private byte[] byteArray;

public synchronized int getFileChecksum(String fileName) {
int len = getFileSize(fileName);
if (byteArray == null || byteArray.length < len)
byteArray = new byte[len];
readFileContents(fileName, byteArray);
// calculate checksum and return it
}
}
Õâ¸öÀà´æÔںܶàµÄÎÊÌ⣬µ«ÊÇÎÒÃÇ×ÅÖØÀ´¿´ÄÚ´æй©¡£»º´æ»º³åÇøµÄ¾ö¶¨ºÜ¿ÉÄÜÊ


Ïà¹ØÎĵµ£º

Java Éú³ÉÑéÖ¤Âë


javaÉú³ÉÑéÖ¤Âë
ÓкܶàÖÖ·½Ê½£¬ÔÚÍøÉÏÒ²Óкܶà´úÂ룬µ«ÊÇÄÇЩÉú³ÉµÄЧ¹û£¬¸Ð¾õ¶¼²»ÊÇÌرðºÃ£¬ËùÒÔÎÒÔÚËûÃǵĻù´¡ÉϸÄÁ¼ÁËһЩ¡£
µ«ÄÜ»¹¿ÉÒÔÓÃjmagick ,Éú³ÉºÜ¶àºÜìŵÄÑéÖ¤Âë¡£¹ýÁ½ÌìÑо¿Ï¡£ÏÈ°Ñ×î½ü¸ÄµÄÕâ¸ö·¢²¼Ï¹©ÅóÓÑÃDzΡ£
¿ÉÒÔÏÈ¿´¿´ÑùÀý¡£×î½üÔÚ×öÕâ¸öÍøÕ¾¡£´ó¼ÒÓÐÐËȤ¿ÉÒԽн»Á÷¡£Ô¼»á360 ÍøÖ·:  www.yue ......

±±¾©£ºJAVA¸ß¼¶¹¤³Ìʦ

ÓÉÓÚ¹«Ë¾ÒµÎñÔö³¤£¬ÏÖ¼±ÐèÕÐƸ·ûºÏÈçÏÂÌõ¼þJAVA¸ß¼¶Èí¼þ¹¤³Ìʦ  Èô¸ÉÃû
1¡¢¾ßÓÐÁ¼ºÃµÄjava¼¼Êõ֪ʶºÍ¾­Ñ飻
2¡¢¾ß±¸Á¼ºÃµÄ½â¾öÎÊÌâµÄÄÜÁ¦ÒÔ¼°³öÉ«µÄÍŶӺÏ×÷ÄÜÁ¦£»
3¡¢ÊìϤJ2EE¼Ü¹¹ºÍ¿ª·¢Ä£Ê½£¬ÊìϤMVCÉè¼Æģʽ£»
4¡¢ÊìϤhibernate¡¢struts2¡¢spring£»
5¡¢ÄÜ°´Õչ淶µÄÈí¼þ¿ª·¢Á÷³Ì£¬Íê³ÉÈí¼þµÄÐèÇó¡¢Éè¼Æ¡¢±àÂëº ......

JavaÖØдÓëÖØÔØ

ÖØдµÄÖ÷ÒªÓŵãÊÇÄܹ»¶¨Òåij¸ö×ÓÀàÌØÓеÄÌØÕ÷:
       Èç:
    public class Father
    {
             public void speak()
         &nb ......

Ïêϸ½âÎöJavaÖгéÏóÀàºÍ½Ó¿ÚµÄÇø±ð

ÔÚJava
ÓïÑÔÖУ¬ abstract class ºÍinterface

ÊÇÖ§³Ö³éÏóÀà
¶¨
ÒåµÄÁ½ÖÖ»úÖÆ¡£ÕýÊÇÓÉÓÚÕâÁ½ÖÖ»úÖƵĴæÔÚ£¬²Å¸³ÓèÁËJavaÇ¿´óµÄ ÃæÏò¶ÔÏóÄÜÁ¦¡£abstract
classºÍinterfaceÖ®¼äÔÚ¶ÔÓÚ³éÏóÀඨÒåµÄÖ§³Ö·½Ãæ¾ßÓкܴóµÄÏàËÆÐÔ£¬ÉõÖÁ¿ÉÒÔÏ໥Ìæ»»£¬Òò´ËºÜ¶à¿ª·¢ÕßÔÚ½ø
ÐгéÏóÀඨÒåʱ¶ÔÓÚabstract
classºÍinterfaceµÄÑ¡Ô ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ