javaÖÐÀ¬»ø»ØÊÕËã·¨
1£©À¬»ø»ØÊÕµÄÁ½¸ö¹Ø¼üÒªËØ£º
·¢ÏÖÎÞÓöÔÏó¡£
»ØÊÕÎÞÓöÔÏóµÄÄÚ´æ¿Õ¼ä¡£
2£©6ÖÖÀ¬»ø»ØÊÕËã·¨£º
ÒýÓüÆÊý·¨£¬tracing Ëã·¨£¬compactingËã·¨£¬copying Ëã·¨£¬generationËã·¨£¬adaptiveËã·¨¡£
3£©detail£º
ÒýÓüÆÊý·¨(Reference Counting Collector)
ÒýÓüÆÊý·¨ÊÇΨһûÓÐʹÓøù¼¯µÄÀ¬»ø»ØÊյ퍣¬¸ÃË㷨ʹÓÃÒýÓüÆÊýÆ÷À´Çø·Ö´æ»î¶ÔÏóºÍ²»Ê¹ÓõĶÔÏó¡£Ò»°ãÀ´Ëµ£¬¶ÑÖеÄÿ¸ö¶ÔÏó¶ÔÓ¦Ò»¸öÒýÓüÆÊýÆ÷¡£µ±Ã¿Ò»´Î´´½¨Ò»¸ö¶ÔÏ󲢸³¸øÒ»¸ö±äÁ¿Ê±£¬ÒýÓüÆÊýÆ÷ÖÃΪ1¡£µ±¶ÔÏ󱻸³¸øÈÎÒâ±äÁ¿Ê±£¬ÒýÓüÆÊýÆ÷ÿ´Î¼Ó1µ±¶ÔÏó³öÁË×÷ÓÃÓòºó(¸Ã¶ÔÏó¶ªÆú²»ÔÙʹÓÃ)£¬ÒýÓüÆÊýÆ÷¼õ1£¬Ò»µ©ÒýÓüÆÊýÆ÷Ϊ0£¬¶ÔÏó¾ÍÂú×ãÁËÀ¬»øÊÕ¼¯µÄÌõ¼þ¡£
»ùÓÚÒýÓüÆÊýÆ÷µÄÀ¬»øÊÕ¼¯Æ÷ÔËÐнϿ죬²»»á³¤Ê±¼äÖжϳÌÐòÖ´ÐУ¬ÊÊÒ˵رØÐëʵʱÔËÐеijÌÐò¡£µ«ÒýÓüÆÊýÆ÷Ôö¼ÓÁ˳ÌÐòÖ´ÐеĿªÏú£¬ÒòΪÿ´Î¶ÔÏ󸳸øÐµıäÁ¿£¬¼ÆÊýÆ÷¼Ó1£¬¶øÃ¿´ÎÏÖÓжÔÏó³öÁË×÷ÓÃÓòÉú£¬¼ÆÊýÆ÷¼õ1¡£
tracingËã·¨(Tracing Collector)
tracingËã·¨ÊÇΪÁ˽â¾öÒýÓüÆÊý·¨µÄÎÊÌâ¶øÌá³ö£¬ËüʹÓÃÁ˸ù¼¯µÄ¸ÅÄî¡£»ùÓÚtracingËã·¨µÄÀ¬»øÊÕ¼¯Æ÷´Ó¸ù¼¯¿ªÊ¼É¨Ã裬ʶ±ð³öÄÄЩ¶ÔÏó¿É´ï£¬ÄÄЩ¶ÔÏ󲻿ɴ²¢ÓÃijÖÖ·½Ê½±ê¼Ç¿É´ï¶ÔÏó£¬ÀýÈç¶Ôÿ¸ö¿É´ï¶ÔÏóÉèÖÃÒ»¸ö»ò¶à¸öλ¡£ÔÚɨÃèʶ±ð¹ý³ÌÖУ¬»ùÓÚtracingËã·¨µÄÀ¬»øÊÕ¼¯Ò²³ÆÎª±ê¼ÇºÍÇå³ý(mark-and-sweep)À¬»øÊÕ¼¯Æ÷.
compactingËã·¨(Compacting Collector)
ΪÁ˽â¾ö¶ÑË鯬ÎÊÌ⣬»ùÓÚtracingµÄÀ¬»ø»ØÊÕÎüÊÕÁËCompactingËã·¨µÄ˼Ï룬ÔÚÇå³ýµÄ¹ý³ÌÖУ¬Ëã·¨½«ËùÓеĶÔÏóÒÆµ½¶ÑµÄÒ»¶Ë£¬¶ÑµÄÁíÒ»¶Ë¾Í±ä³ÉÁËÒ»¸öÏàÁڵĿÕÏÐÄÚ´æÇø£¬ÊÕ¼¯Æ÷»á¶ÔËüÒÆ¶¯µÄËùÓжÔÏóµÄËùÓÐÒýÓýøÐиüУ¬Ê¹µÃÕâЩÒýÓÃÔÚеÄλÖÃÄÜʶ±ðÔÀ´µÄ¶ÔÏó¡£ÔÚ»ùÓÚCompactingËã·¨µÄÊÕ¼¯Æ÷µÄʵÏÖÖУ¬Ò»°ãÔö¼Ó¾ä±úºÍ¾ä±ú±í¡£
copyingËã·¨(Coping Collector)
¸ÃËã·¨µÄÌá³öÊÇΪÁ˿˷þ¾ä±úµÄ¿ªÏúºÍ½â¾ö¶ÑË鯬µÄÀ¬»ø»ØÊÕ¡£Ëü¿ªÊ¼Ê±°Ñ¶Ñ·Ö³ÉÒ»¸ö¶ÔÏó ÃæºÍ¶à¸ö¿ÕÏÐÃæ£¬³ÌÐò´Ó¶ÔÏóÃæÎª¶ÔÏó·ÖÅä¿Õ¼ä£¬µ±¶ÔÏóÂúÁË£¬»ùÓÚcopingËã·¨µÄÀ¬»ø ÊÕ¼¯¾Í´Ó¸ù¼¯ÖÐɨÃè»î¶¯¶ÔÏ󣬲¢½«Ã¿¸ö»î¶¯¶ÔÏó¸´ÖƵ½¿ÕÏÐÃæ(ʹµÃ»î¶¯¶ÔÏóËùÕ¼µÄÄÚ´æÖ®¼äûÓпÕÏж´)£¬ÕâÑù¿ÕÏÐÃæ±ä³ÉÁ˶ÔÏóÃæ£¬ÔÀ´µÄ¶ÔÏóÃæ±ä³ÉÁË¿ÕÏÐÃæ£¬³ÌÐò»áÔÚеĶÔÏóÃæÖзÖÅäÄÚ´æ¡£Ò»ÖÖµäÐ͵ĻùÓÚcopingËã·¨µÄÀ¬»ø»ØÊÕÊÇstop-and-copyËã·¨£¬Ëü½«¶Ñ·Ö³É¶ÔÏóÃæºÍ¿ÕÏÐÇøÓòÃæ£¬ÔÚ¶ÔÏóÃæÓë¿ÕÏÐÇøÓòÃæµÄÇл»¹ý³ÌÖУ¬³ÌÐòÔÝÍ£Ö´ÐС£
generationËã·¨(Genera
Ïà¹ØÎĵµ£º
ÎÒÃÇÖªµÀJavaÖÐÒ»°ãµÄÊäÈëÊä³öÁ÷Àà¶¼ÊÇÓõ¥×ֽڵĶÁÈ¡·½·¨À´½øÐÐI/O²Ù×÷µÄ£¬Ò²¾ÍÊÇ˵ÿ´ÎÖ»¶Áдһ¸ö×Ö½ÚµÄÊý¾Ý£¬ÕâÖÖ·½·¨ÏÔÈ»·±ËöµÍЧ¡£Èç¹û´ÓÉ豸¶ÁÈ¡10MµÄÎļþ£¬Ã¿´Î¶Áȡһ¸ö×Ö½Ú£¬Íê³É²Ù×÷½«ÐèÒª×ö10M/´ÎI/O²Ù×÷£¬I/O²Ù×÷ÓÖÊÇÒ»¼þÏ൱ºÄʱµÄÊÂÇ飬ÎÞÒÉÔںܴó³Ì¶ÈÉϽµµÍÁËϵͳµÄÐÔÄÜ¡£
JavaÖÐ× ......
ǰһ¶Îʱ¼äÊÔ×ÅÓÃÕâÈýÖÖÓïÑÔ¼òµ¥µÄдÁ˹ØÓÚÎļþ¿½±´µÄ³ÌÐò£¬·¢ÏÖc#ºÍpythonµÄapi¾ªÈ˵ÄÏàËÆ£¬¶ÔÓÚÎļþµÄ²Ù×÷ÕâÁ½ÖÖÓïÑԷdz£µÄ·½±ã¡£¶¼Ã»ÓмÓÒì³£µÄ´¦Àí
C#Ô´´úÂ룺
public static void CopyFile(string source, string destination)
& ......
String fm = "46+5*(120-37)";
String[] item = fm.split("[+-/*/()]");
for(String it: item){
System.out.print(it+" ");
}
ÕýÔò±í´ïʽÖРתÒ壺 * ==> /* ......
package com.fanxing.neibulei;
/**
*
* @author xiaxiaorui
*
*·ºÐÍ ÊÜÏÞ·ºÐÍ
*http://developer.51cto.com/art/200909/153983.htm
*/
class Info2<T>
{
private T var; // ¶¨Òå·ºÐͱäÁ¿
public T getVar() {
return var;
}
public void setVar(T var) {
this.var = var;
}
......
javaÖеķ´Éä¾³£±»ÓÃÔÚһЩ¿ò¼Ü´î½¨ÉÏ£¬ËûÄܹ»ÈÃÎÒÃǺܷ½±ãµÄ¶Ô×Ô¼ºÎ´À´½«Ê¹ÓõÄÀ࣬·½·¨ºÍ±äÁ¿½øÐзÃÎÊ¡£¸öÈ˾õµÃÓÐÖֺڿ͵ÄζµÀÔÚÀïÃæ¡£µ±ÎÒÃÇÖªµÀÒ»¸öÀàµÄÀàÃûºó£¬ÎÒÃÇ»ù±¾ÉÏ¿ÉÒÔʹÓ÷´ÉäµÄµ½ËüµÄÒ»ÇС£°üÀ¨ËûµÄprivateµÄ·½·¨ºÍ±äÁ¿µÈ(µ±È»·ÃÎÊËûÃǵÄʹÓÃÐèҪʹÓõÄÊÇgetDeclared***(**))¡£ÁíÍ⣬¾Ý ......