Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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Ò²½«½ü¿ìÁ½ÄêµÄʱ¼äÁË£¬Ö®Ç°Ñ§¹ýµÄ¶«Î÷×Ô¼º¸Ð¾õÓеãÄ£ºý£¬ÀíÂÛÕÆÎյIJ»ÊǺÜ͸³¹£¬ÓÐЩÎÊÌâ½â¾öµÄÒ²²»ÊǺÜÈ«Ãæ£¬Îª´ËÔÚ´óѧ±ÏҵǰϦ£¬Ïë°Ñ֪ʶºÃºÃµÄÊáÀíһϣ¬°Ñ×Ô¼º¶Ô¼¼ÊõµÄÒɵãºÍһЩÑо¿ÐĵÃдµ½csdn²©¿ÍÉÏ¡£ ......

Ò»´ÎÐÔÀíÇåjava ÖÐµÄ Àà¡¢³éÏóÀà¡¢½Ó¿Ú¡¢¼Ì³Ð¡¢¶ÔÏó

ÀàÊǹ㷺µÄ¸ÅÄ±íʾһ¸öÓй²Í¬ÐÔÖʵÄȺÌå¡£È磺ÈËÀà¡£
´úÂ룺
       // ÉùÃ÷Ò»¸öÀà“Human”
            class Human{
            priv ......

javaÖÐstringÓëÆäËûÀàÐÍÖ®¼äµÄ»¥Ïàת»»

1.½«Int,Float,Double,Longת»»ÎªString
String s = ""+i;
String s = String.valueOf(i);
String s = Integer.toString(i);
µÚÒ»ÖÖ·½·¨£ºs = ""+i;   //»á²úÉúÁ½¸öString¶ÔÏó
µÚ¶þÖÖ·½·¨£ºs=String.valueOf(i); //Ö±½ÓʹÓÃStringÀàµÄ¾²Ì¬·½·¨£¬Ö»²úÉúÒ»¸ö¶ÔÏó
µÚÈýÖÖ·½·¨£ºÐ§ÂÊ×î¸ß£¿
2.½«Stringת»»ÎªIn ......

Developing Games in Java£¨²¿·Ö£©

   Ô­ÎÄÀ´×ÔÓÚ¡¶Developing Games in Java¡·£¬×÷ÕߣºDavid Brackeen, Bret Barker, Laurence Vanhelsuwé
   JavaÔÚÉè¼ÆÊ±³ä·Ö¿¼ÂÇÁËÏß³Ì,Òò´ËÔÚJavaÖÐÏ̵߳IJÙ×÷±ÈÆäËûÓïÑÔÒª¼òµ¥¡£Ö»ÐèÉú³ÉÒ»¸öThreadÀàµÄʵÀý±ã¿É´´½¨Ò»¸öỊ̈߳¬È»ºóµ÷ÓÃstart()·½·¨Ïß³Ì¾ÍÆô¶¯ÁË¡£
 &nbs ......

javaÈÕÆÚ´¦ÀíSystem£¨1£©

È¡µÃµ±Ç°ÏµÍ³Ê±¼ä   System.currentTimeMillis()
·µ»ØºÁÃëʱ¼ä£¬ÎªlongÐÍÕûÊý£¬
¸Ãº¯ÊýÔÚ½øÐÐϵͳÐÔÄÜ¼à¿ØÊ±×î³£Óõ½
Àý£º
  long start = System.currentTimeMillis();
  //Òª¼à¿ØµÄ´úÂë¶Î
  long end = System.currentTimeMillis();
  System.out.println(end-start);
ÓÐʱҪ¼à¿Øµ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ