Effective Java ѧϰ±Ê¼Ç£¨£±£©
ͨ³£Çé¿öÏ£¬ÎÒÃÇÔÚдһ¸öÀàʱ£¬Ò»°ã»á¸³ÓèËüÒ»¸ö»ò¼¸¸öpublicµÄ¹¹Ô캯Êý£¬ÈÃÍⲿ³ÌÐòÄܹ»´´½¨¶ÔÏó.¡¡È»¶ø£¬ÔÚeffective¡¡java ÖУ¬´ÓÁíÒ»¸ö½Ç¶È¸æ½ëÎÒÃÇÔÚʹÓÃpublicµÄ¹¹Ô캯Êýǰ£¬ÏÈ¿¼ÂÇÓÃpublic µÄ¾²Ì¬º¯ÊýÀ´´´½¨¶ÔÏó.¡¡
ÆäÓŵãÈçÏ£º
£±.¡¡Ò»¸ö¾²Ì¬µÄ¹¤³§º¯Êý£¬¿ÉÒÔÈ¡²»Í¬µÄÃû×Ö.¡¡¶ø¹¹Ô캯ÊýµÄÃû×ÖÖ»ÄÜÓëÀàͬÃû.¡¡
¡¡¡¡Ò»¸öAPIµÄÉè¼ÆÖУ¬Ò»¸öºÃ¶®µÄÃû×Ö¿ÉÒÔÃâȥʹÓÃÕßÔÚÎĵµÖвéÕÒÆäʹÓ÷½·¨µÄÂé·³.¡¡
¡¡¡¡¡¡È磺¡¡¼ÙÈçÓиöÀà½ÐHuman£¬¼ÙÈçËüÓиö¹¹Ô캯Êý¡¡Human£¨¡¡int sex) ,¸ù¾Ý²ÎÊýÀ´´´½¨²»Í¬µÄ¶ÔÏó.¡¡Óû§¾Í¿ÉÄÜÈ¥²éÎĵµ£¬sex=1 or sex=0 ·Ö±ð´ú±íʲô.¡¡µ«Èç¹ûÎÒÃǸøËü¼ÓÁ½¸ö¾²Ì¬µÄ¹¤³§º¯Êý£¬Human.getMan() ºÍ¡¡Human.getWoman() Óû§Ò»¿´Ãû×Ö¾ÍÖªµÀÊÇÔõôÓÃ.
¡¡¡¡¡¡ÁíÍ⣬ÕýÒòΪ¾²Ì¬¹¤³§º¯Êý¿ÉÒÔÈ¡²»Í¬µÄÃû×Ö£¬¿ÉÒÔÃâÈ¥¹¹Ô캯ÊýÏÞ¶¨²ÎÊýµÄ·³ÄÕ.
¡¡¡¡¡¡Àý×ÓͬÉÏ£¬ÈçÎÒÃÇÒªÓÐÒ»¸ö¸ù¾ÝÉí¸ßÀ´´´½¨Ò»¸öHuman¶ÔÏó£¬ÓÚÊÇÎÒÃÇдÓÐHuman(int height), ºóÀ´£¬ÎÒÃÇÓÖÏë¸ù¾ÝÄê¼ÍÀ´´´½¨Ò»¸ö¶ÔÏó£¬ÓÚÊÇÎÒÃÇÓÖÓÐHuman(int age), ºÜÃ÷ÏÔ£¬ÓÉÓÚº¯ÊýÇ©ÃûµÄÏÞÖÆ£¬ÎÒÃÇÖ»ÄÜÑ¡ÔñÆäÖÐÒ»¸ö¹¹Ô캯Êý.µ«Ê¹Óþ²Ì¬¹¤³§·½·¨¾ÍûÓÐÕâ¸ö·³ÄÕ.¡¡ÎÒÃÇ¿ÉÒÔÓÐHuman.getInstanceByHeight(int height) Ò²¿ÉÒÔÓÐ Human.getInstanceByAge(int age),ËûÃÇ¿ÉÒԺܺÏгµÄÔÚÒ»Æð¹¤×÷.
2. ʹÓþ²Ì¬¹¤³§º¯Êý,²»±ØÏñ¹¹Ô캯ÊýÄÇÑùÿ´Î¶¼´´½¨¶ÔÏó,¿ÉÒÔÔںܴó³Ì¶ÈÉϽÚÔ¼×ÊÔ´,ÌØ±ðÊÇÓÐЩÀà½öÓÐÓÐÏÞ¸öÊýµÄ¶ÔÏóʱ.
Èç ÎÒÃÇÓÐMonthÕâôһ¸öÀà, °´ÕÕÔÀ´µÄ·½·¨,ÎÒÃÇ¿ÉÄÜÓÐMonth(int mon), ÓÚÊÇ,ÿ´Îµ÷ÓÃÒ»¸ö¹¹Ô캯Êý,¾Í»á´´½¨Ò»¸öMonth¶ÔÏó,Æä½á¹ûÊÇÄÚ´æÖкܿÉÄÜ´æÔÚ´óÓÚ12¸öMonth¶ÔÏó. È»¶ø,¼ÙÈç,ÎÒÃÇÊÂÏȶ¨Òå12¸ö¾²Ì¬¶ÔÏó,´ÓJanµ½Dec,È»ºó¸øÒ»¸öMonth.getMonth(int mon)Õâôһ¸ö¾²Ì¬¹¤³§·½·¨, ÔÚº¯ÊýÖиù¾ÝÊý×Ö·µ»ØÆäÖÐÒ»¸ö¾²Ì¬¶ÔÏó,ÕâÑù,²»¹Ü³ÌÐòÔõôÔËÐÐ,ÄÚ´æÖÐʼÖÕÖ»ÓÐ12¸öMonth¶ÔÏó.
ÕâÑù×ö»¹ÓÐÒ»¸öºÃ´¦¾ÍÊÇ, Óû§¿ÉÒÔÖ±½ÓʹÓÃ== ±È½ÏÁ½¸ö¶ÔÏóÊÇ·ñÏàµÈ,¶ø²»ÓÃequal·½·¨.
3. Ò»¸ö¾²Ì¬¹¤³§º¯Êý£¬·µ»ØµÄ¶ÔÏó¿ÉÒÔÊÇÕâ¸öÀàµÄ¶ÔÏó£¬Ò²¿ÉÒÔÊÇÆä×ÓÀàµÄ¶ÔÏó£¬Ôö¼ÓÁËÉè¼ÆµÄÁé»îÐÔ¡£ÔÚʵ¼ÊÔËÓÃÖУ¬¿ÉÒԵõ½¼¸¸öºÃ´¦¡£
ÆäÒ»£¬¿ÉÒÔÒþ²ØÒ»Ð©À࣬¼õÉÙ¶ÔÍ⹫²¼µÄAPIÊý£¬¾«¼ò½Ó¿Ú¡£Õâ¾ä»°¿ÉÒÔÕâÑùÀí½â¡£±ÈÈçÉè¼ÆÒ»¸ö¿ò¼Ü£¬ÀïÃæ°üº¬ÓÐ20¸öÀ࣬µ«Êµ¼ÊÉÏ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýʹÓþ²Ì¬¹¤³§º¯ÊýÒþ²ØÒ»Ð©ÄÚ²¿ÊµÏÖ£¬Ê¹Óû§²»ÓÃÖªµÀÈ«²¿µÄÀ༰ʹÓ÷½·¨£¬Ê¹¿ò¼ÜÒ×Óá£
Ïà¹ØÎĵµ£º
ºÜ¶àÅóÓÑÔÚJava¿ª·¢ÖУ¬Ê¹ÓÃOracleÊý¾Ý¿âµÄʱºò£¬¾³£»áÅöµ½ÓÐORA-01000: maximum open cursors exceeded.µÄ´íÎó¡£
ʵ¼ÊÉÏ£¬Õâ¸ö´íÎóµÄÔÒò£¬Ö÷Òª»¹ÊÇ´úÂëÎÊÌâÒýÆðµÄ¡£
ora-01000: maximum open cursors exceeded.
±íʾÒѾ´ïµ½Ò»¸ö½ø³Ì´ò¿ªµÄ×î´óÓαêÊý¡£
ÕâÑùµÄ´íÎóºÜÈÝÒ׳öÏÖÔÚJava´úÂëÖеÄÖ÷ÒªÔÒòÊÇ£ºJava´úÂëÔÚÖ´ ......
JavaÓïÑÔµÄÊäÈëÊä³ö¹¦ÄÜÊÇÊ®·ÖÇ¿´ó¶øÁé»îµÄ£¬ÃÀÖв»×ãµÄÊÇ¿´ÉÏÈ¥ÊäÈëÊä³öµÄ´úÂë²¢²»ÊǺܼò½à£¬ÒòΪÄãÍùÍùÐèÒª°ü×°Ðí¶à²»Í¬µÄ¶ÔÏó¡£ÔÚJavaÀà¿âÖУ¬IO²¿·ÖµÄÄÚÈÝÊǺÜÅÓ´óµÄ£¬ÒòΪËüÉæ¼°µÄÁìÓòºÜ¹ã·º:±ê×¼ÊäÈëÊä³ö£¬ÎļþµÄ²Ù×÷£¬ÍøÂçÉϵÄÊý¾ÝÁ÷£¬×Ö·û´®Á÷£¬¶ÔÏóÁ÷£¬zipÎļþÁ÷....±¾ÎĵÄÄ¿µÄÊÇΪ´ó¼Ò×öÒ»¸ö¼òÒªµÄ½éÉÜ¡£
¡¡¡¡Á ......
import org.junit.Test;
public class ConstructorTest {
@Test @SuppressWarnings("unchecked")
public void testConstructor(){
try {
Class clazz = Class.forName("cn.vicky.utils.User");
Method method = clazz.getDeclaredMethod("getName");
Constructor<? extends Live> constructor = ......
JAVA·´Éä»úÖÆ
JAVA·´Éä»úÖÆÊÇÔÚÔËÐÐ״̬ÖУ¬¶ÔÓÚÈÎÒâÒ»¸öÀ࣬¶¼Äܹ»ÖªµÀÕâ¸öÀàµÄËùÓÐÊôÐԺͷ½·¨£»¶ÔÓÚÈÎÒâÒ»¸ö¶ÔÏ󣬶¼Äܹ»µ÷ÓÃËüµÄÈÎÒâÒ»¸ö·½·¨£»ÕâÖÖ¶¯Ì¬»ñÈ¡µÄÐÅÏ¢ÒÔ¼°¶¯Ì¬µ÷ÓöÔÏóµÄ·½·¨µÄ¹¦ÄܳÆÎªjavaÓïÑԵķ´Éä»úÖÆ¡£
Java·´Éä»úÖÆÖ÷ÒªÌṩÁËÒÔϹ¦ÄÜ£º ÔÚÔËÐÐʱÅжÏÈÎÒâÒ»¸ö¶ÔÏóËùÊô ......
doGet()ºÍdoPost()
JspÒ³ÃæµÄform±êÇ©ÀïµÄmethodÊôÐÔΪgetʱµ÷ÓÃdoget(0,
Ϊpostʱµ÷ÓÃdoPost()
Jsp
JspÒýÇæ(Tomcat)ÏȽ«jspÎļþת»»Îªservlet£¬È»ºóµ÷ÓÃJava±àÒëÆ÷javac.exe¶Ô
......