Effective Java ѧϰ±Ê¼Ç (7)
Finalizer ²»¿É¼Æ»®µÄ,Ò²ÊÇΣÏÕµÄ,Ò»°ãÒ²ÊDz»±ØÒªµÄ. ²»ÄÜÔÚfinalizerÖзÅÈκÎÓëÒÀÀµÊ±¼äÏà¹ØµÄ²Ù×÷,ÒòΪÄã²»ÖªµÀËüʲôʱºò±»Ö´ÐÐ. ±ÈÈçÔÚfinalizerÖйرÕÎļþµÄ×ö·¨¾ÍÊÇ´íÎóµÄ, ¸ù¾ÝJVMµÄʵÏÖ·½Ê½²»Í¬,ÓпÉÄܵ¼Ö´ò¿ªµÄÎļþÊý¹ý¶à¶øÎÞ·¨ÔÙ´ò¿ªÎļþ. Ò²²»ÄÜÔÚfinalizerÖиıä״̬,Èç¸øÊý¾Ý¿â½âËøµÈ. finalizer»¹ÄÜ´øÀ´ÑÏÖØµÄÐÔÄÜÎÊÌâ, ÏÔʾµÄµ÷ÓõÄÖÕÖ¹º¯Êý¿ÉÒÔ²ÉÓÃtry -finallyµÄÓï¾ä µ±È»,ºÏ·¨µÄʹÓÃfinalizerÓÐÁ½ÖÖÇé¿ö: Ò»ÖÖÊÇ×öΪ×îºóµÄÒ»µÀ¹Ø¿¨,¼ì²âÓû§ÊÇ·ñÓÐûÓб»ÊͷŵÄ×ÊÔ´,Èç¹ûÓÐÔòÊÍ·ÅËü,²¢´òÓ¡³ö¾¯¸æ. ËäÈ»²»ÌᳫÔÚfinalizerÖÐÊÍ·Å×ÊÔ´,µ«ÍíÊÍ·Å×ܱȲ»ÊͷźÃ(beter later than never) »¹Ò»ÖֺϷ¨Ê¹ÓþÍÊÇÔÚʹÓà native·½·¨µÄʱºò. ҪעÒâ,finallizerûÓгм̹ØÏµ,ÔÚ×ÓÀàÖбØÐëÏÔʾµ÷Óø¸ÀàÖеĺ¯Êý.
Ïà¹ØÎĵµ£º
public class Bean1 {
private String strValue;
private int intValue;
private List listValue;
private Set setValue;
private String[] arrayValue;
private Map mapValue;
public String getStrValue() {
return strValue;
}
public void setStrValue(String strValue) {
t ......
1. ¼òµ¥ÀàÐÍÊǰ´Öµ´«µÝµÄ
¡¡¡¡Java ·½·¨µÄ²ÎÊýÊǼòµ¥ÀàÐ͵Äʱºò£¬Êǰ´Öµ´«µÝµÄ (pass by value)¡£ÕâÒ»µãÎÒÃÇ¿ÉÒÔͨ¹ýÒ»¸ö¼òµ¥µÄÀý×ÓÀ´ËµÃ÷£º
/* Àý 1 */
/**
* @(#) Test.java
* @author fancy
*/
public class Test {
public static void test(boolean test) {
&nb ......
±¾×÷Æ·²ÉÓÃ֪ʶ¹²ÏíÊðÃû-·ÇÉÌÒµÐÔʹÓÃ-Ïàͬ·½Ê½¹²Ïí 2.5 Öйú´ó½Ðí¿ÉÐÒé½øÐÐÐí¿É¡£
JavaÖеıäÁ¿Óë¶ÔÏóÓÐÇø±ðÂð£¿
Òý×Ó£º±äÁ¿Óë¶ÔÏó
±äÁ¿ÊÇJavaÖÐ×î»ù±¾µÄ´æ´¢µ¥Ôª£¬Îª±äÁ¿¸³Öµ¿ÉÒÔʹÓø³Öµ±í´ïʽ¡£È磺
int i = 10;
¸Ã±í´ïʽµÄº¬ÒåÊǽ«Ò»¸ö×ÖÃæÁ¿£¨literal£©10¸³Öµ¸øÒ»¸öÀàÐÍΪintÐ͵ıäÁ¿£¬±äÁ¿ÃûΪi¡£ÕâÊÇÒ»¸öÎ ......
/* ¸ßÊÖÖ®×÷£¬±¾È˽÷ÒÔÊÕ²ØÕßÉí·ÝÄóö¹²Ïí¹©´ó¼Ò²Î¿¼! */
/*
* ÏòÁ¿½Ó¿Ú
*/
package dsa;
public interface Vector {
//·µ»ØÏòÁ¿ÖÐÔªËØÊýÄ¿
public int getSize();
//ÅжÏÏòÁ¿ÊÇ·ñΪ¿Õ
public boolean isEmpty();
//È¡ÖÈΪrµÄÔªËØ
public Object getAtRank(int r)
throws ......
/* ¸ßÊÖÖ®×÷£¬±¾È˽÷ÒÔÊÕ²ØÕßÉí·Ý¹²ÏíÔ´Â룬¹©´ó¼Ò²Î¿¼Ö®! */
/*
* ÁбíADT½Ó¿Ú
*/
package dsa;
public interface List {
//²éѯÁÐ±íµ±Ç°µÄ¹æÄ£
public int getSize();
//ÅжÏÁбíÊÇ·ñΪ¿Õ
public boolean isEmpty();
//·µ»ØµÚÒ»¸öÔªËØ£¨µÄλÖã©
public Position first();
//· ......