4 02, 2005
javaÃæÊÔ±ÊÊÔÌâ´ó»ã×Ü[zz]
1¡¢ÃæÏò¶ÔÏóµÄÌØÕ÷ÓÐÄÄЩ·½Ãæ
1.³éÏó£º
³éÏó¾ÍÊǺöÂÔÒ»¸öÖ÷ÌâÖÐÓ뵱ǰĿ±êÎ޹صÄÄÇЩ·½Ã棬ÒÔ±ã¸ü³ä·ÖµØ×¢ÒâÓ뵱ǰĿ±êÓйصķ½Ãæ¡£³éÏó²¢²»´òËãÁ˽âÈ«²¿ÎÊÌ⣬¶øÖ»ÊÇÑ¡ÔñÆäÖеÄÒ»²¿·Ö£¬ÔÝʱ²»Óò¿·Öϸ½Ú¡£³éÏó°üÀ¨Á½¸ö·½Ã棬һÊǹý³Ì³éÏ󣬶þÊÇÊý¾Ý³éÏó¡£
2.¼Ì³Ð£º
¼Ì³ÐÊÇÒ»ÖÖÁª½áÀàµÄ²ã´ÎÄ£ÐÍ£¬²¢ÇÒÔÊÐíºÍ¹ÄÀøÀàµÄÖØÓã¬ËüÌṩÁËÒ»ÖÖÃ÷È·±íÊö¹²ÐԵķ½·¨¡£¶ÔÏóµÄÒ»¸öÐÂÀà¿ÉÒÔ´ÓÏÖÓеÄÀàÖÐÅÉÉú£¬Õâ¸ö¹ý³Ì³ÆÎªÀà¼Ì³Ð¡£ÐÂÀà¼Ì³ÐÁËÔʼÀàµÄÌØÐÔ£¬ÐÂÀà³ÆÎªÔʼÀàµÄÅÉÉúÀࣨ×ÓÀࣩ£¬¶øÔʼÀà³ÆÎªÐÂÀàµÄ»ùÀࣨ¸¸Àࣩ¡£ÅÉÉúÀà¿ÉÒÔ´ÓËüµÄ»ùÀàÄÇÀï¼Ì³Ð·½·¨ºÍʵÀý±äÁ¿£¬²¢ÇÒÀà¿ÉÒÔÐ޸ĻòÔö¼ÓÐµķ½·¨Ê¹Ö®¸üÊʺÏÌØÊâµÄÐèÒª¡£
3.·â×°£º
·â×°Êǰѹý³ÌºÍÊý¾Ý°üΧÆðÀ´£¬¶ÔÊý¾ÝµÄ·ÃÎÊÖ»ÄÜͨ¹ýÒѶ¨ÒåµÄ½çÃæ¡£ÃæÏò¶ÔÏó¼ÆËãʼÓÚÕâ¸ö»ù±¾¸ÅÄ¼´ÏÖʵÊÀ½ç¿ÉÒÔ±»Ãè»æ³ÉһϵÁÐÍêÈ«×ÔÖΡ¢·â×°µÄ¶ÔÏó£¬ÕâЩ¶ÔÏóͨ¹ýÒ»¸öÊܱ£»¤µÄ½Ó¿Ú·ÃÎÊÆäËû¶ÔÏó¡£
4. ¶à̬ÐÔ£º
¶à̬ÐÔÊÇÖ¸ÔÊÐí²»Í¬ÀàµÄ¶ÔÏó¶ÔͬһÏûÏ¢×÷³öÏìÓ¦¡£¶à̬ÐÔ°üÀ¨²ÎÊý»¯¶à̬ÐԺͰüº¬¶à̬ÐÔ¡£¶à̬ÐÔÓïÑÔ¾ßÓÐÁé»î¡¢³éÏó¡¢ÐÐΪ¹²Ïí¡¢´úÂë¹²ÏíµÄÓÅÊÆ£¬ºÜºÃµÄ½â¾öÁËÓ¦ÓóÌÐòº¯ÊýͬÃûÎÊÌâ¡£
2¡¢StringÊÇ×î»ù±¾µÄÊý¾ÝÀàÐÍÂð?
»ù±¾Êý¾ÝÀàÐͰüÀ¨byte¡¢int¡¢char¡¢long¡¢float¡¢double¡¢booleanºÍshort¡£
java.lang.StringÀàÊÇfinalÀàÐ͵ģ¬Òò´Ë²»¿ÉÒԼ̳ÐÕâ¸öÀà¡¢²»ÄÜÐÞ¸ÄÕâ¸öÀࡣΪÁËÌá¸ßЧÂʽÚÊ¡¿Õ¼ä£¬ÎÒÃÇÓ¦¸ÃÓÃStringBufferÀà
3¡¢int ºÍ Integer ÓÐÊ²Ã´Çø±ð
Java ÌṩÁ½ÖÖ²»Í¬µÄÀàÐÍ£ºÒýÓÃÀàÐͺÍÔʼÀàÐÍ£¨»òÄÚÖÃÀàÐÍ£©¡£IntÊÇjavaµÄÔʼÊý¾ÝÀàÐÍ£¬IntegerÊÇjavaΪintÌṩµÄ·â×°Àà¡£JavaΪÿ¸öÔʼÀàÐÍÌṩÁË·â×°Àà¡£
ÔʼÀàÐÍ·â×°Àà
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
ÒýÓÃÀàÐͺÍÔʼÀàÐ͵ÄÐÐΪÍêÈ«²»Í¬£¬²¢ÇÒËüÃǾßÓв»Í¬µÄÓïÒå¡£ÒýÓÃÀàÐͺÍÔʼÀàÐ;ßÓв»Í¬µÄÌØÕ÷ºÍÓ÷¨£¬ËüÃǰüÀ¨£º´óСºÍËÙ¶ÈÎÊÌ⣬ÕâÖÖÀàÐÍÒÔÄÄÖÖÀàÐ͵ÄÊý¾Ý½á¹¹´æ´¢£¬µ±ÒýÓÃÀàÐͺÍÔʼÀàÐÍÓÃ×÷ij¸öÀàµÄʵÀýÊý¾ÝʱËùÖ¸¶¨µÄȱʡֵ¡£¶ÔÏóÒýÓÃʵÀý±äÁ¿µÄȱʡֵΪ null£¬¶øÔʼÀàÐÍʵÀý±äÁ¿µÄȱʡֵÓëËüÃǵÄÀàÐÍÓйء£
4¡¢String ºÍStringBufferµÄÇø±ð
JAVAƽ̨ÌṩÁËÁ½¸öÀࣺStringºÍStringBuffer£¬ËüÃÇ¿ÉÒÔ´¢´æºÍ²Ù×÷×Ö·û´®£¬¼´°üº¬¶à¸ö×Ö·ûµÄ×Ö·ûÊý¾Ý¡£Õâ¸öStringÀàÌṩÁËÊýÖµ²»¿É¸Ä±äµÄ×Ö·û´®¡£¶øÕâ¸öStringBufferÀàÌṩµÄ×Ö·û´®½øÐÐÐ޸ġ£µ±ÄãÖªµÀ×Ö·ûÊý¾ÝÒª¸Ä±äµÄʱºòÄã¾Í¿ÉÒÔʹÓÃStringBuffer¡£µäÐ͵أ¬Äã¿ÉÒÔʹÓÃStringBuffersÀ´¶¯Ì¬¹¹Ôì×Ö·ûÊý¾Ý¡£
5¡¢ÔËÐÐʱÒì³£ÓëÒ»°ãÒì³£ÓкÎÒìͬ£¿
Òì³£±íʾ³ÌÐòÔËÐйý³ÌÖпÉÄܳöÏֵķÇÕý³£×´Ì¬£¬ÔËÐÐʱÒì³£±íʾÐéÄâ»úµÄͨ³£²Ù×÷ÖпÉÄÜÓöµ½µÄÒì³££¬ÊÇÒ»ÖÖ³£¼ûÔËÐдíÎó¡£java±àÒëÆ÷ÒªÇó·½·¨±ØÐëÉùÃ÷Å׳ö¿ÉÄÜ·¢ÉúµÄ·ÇÔËÐÐʱÒì³££¬µ«ÊDz¢²»ÒªÇó±ØÐëÉùÃ÷Å׳öδ±»²¶»ñµÄÔËÐÐʱÒì³£¡£
6¡¢Ëµ³öServletµÄÉúÃüÖÜÆÚ£¬²¢Ëµ³öServletºÍCGIµÄÇø±ð¡£
Servlet±»·þÎñÆ÷ʵÀý»¯ºó£¬ÈÝÆ÷ÔËÐÐÆäinit·½·¨£¬ÇëÇóµ½´ïʱÔËÐÐÆäservice·½·¨£¬service·½·¨×Ô¶¯ÅÉDzÔËÐÐÓëÇëÇó¶ÔÓ¦µÄdoXXX·½·¨£¨doGet£¬doPost£©µÈ£¬µ±·þÎñÆ÷¾ö¶¨½«ÊµÀýÏú»ÙµÄʱºòµ÷ÓÃÆädestroy·½·¨¡£
ÓëcgiµÄÇø±ðÔÚÓÚservlet´¦ÓÚ·þÎñÆ÷½ø³ÌÖУ¬Ëüͨ¹ý¶àÏ̷߳½Ê½ÔËÐÐÆäservice·½·¨£¬Ò»¸öʵÀý¿ÉÒÔ·þÎñÓÚ¶à¸öÇëÇ󣬲¢ÇÒÆäʵÀýÒ»°ã²»»áÏú»Ù£¬¶øCGI¶Ôÿ¸öÇëÇó¶¼²úÉúеĽø³Ì£¬·þÎñÍê³Éºó¾ÍÏú»Ù£¬ËùÒÔЧÂÊÉϵÍÓÚservlet¡£
7¡¢Ëµ³öArrayList,Vector, LinkedListµÄ´æ´¢ÐÔÄܺÍÌØÐÔ
ArrayListºÍVector¶¼ÊÇʹÓÃÊý×鷽ʽ´æ´¢Êý¾Ý£¬´ËÊý×éÔªËØÊý´óÓÚʵ¼Ê´æ´¢µÄÊý¾ÝÒÔ±ãÔö¼ÓºÍ²åÈëÔªËØ£¬ËüÃǶ¼ÔÊÐíÖ±½Ó°´ÐòºÅË÷ÒýÔªËØ£¬µ«ÊDzåÈëÔªËØÒªÉæ¼°Êý×éÔªËØÒÆ¶¯µÈÄÚ´æ²Ù×÷£¬ËùÒÔË÷ÒýÊý¾Ý¿ì¶ø²åÈëÊý¾ÝÂý£¬VectorÓÉÓÚʹÓÃÁËsynchronized·½·¨£¨Ḭ̈߳²È«£©£¬Í¨³£ÐÔÄÜÉϽÏArrayList²î£¬¶øLinkedListʹÓÃË«ÏòÁ´±íʵÏÖ´æ´¢£¬°´ÐòºÅË÷ÒýÊý¾ÝÐèÒª½øÐÐǰÏò»òºóÏò±éÀú£¬µ«ÊDzåÈëÊý¾ÝʱֻÐèÒª¼Ç¼±¾ÏîµÄǰºóÏî¼´¿É£¬ËùÒÔ²åÈëËٶȽϿ졣
8¡¢EJBÊÇ»ùÓÚÄÄЩ¼¼ÊõʵÏֵģ¿²¢Ëµ³öSessionBeanºÍEntityBeanµÄÇø±ð£¬StatefulBeanºÍStatelessBeanµÄÇø±ð¡£
EJB°üÀ¨Session Bean¡¢Entity Bean¡¢Message Driven Bean£¬»ùÓÚJNDI¡¢RMI¡¢JATµÈ¼¼ÊõʵÏÖ¡£
SessionBeanÔÚJ2EEÓ¦ÓóÌÐòÖб»ÓÃÀ´Íê³ÉһЩ·þÎñÆ÷¶ËµÄÒµÎñ²Ù×÷£¬ÀýÈç·ÃÎÊÊý¾Ý¿â¡¢µ÷ÓÃÆäËûEJB×é¼þ¡£EntityBean±»ÓÃÀ´´ú±íÓ¦ÓÃϵͳÖÐÓõ½µÄÊý¾Ý¡£
¶ÔÓÚ¿Í»§»ú£¬SessionBeanÊÇÒ»Öַdz־ÃÐÔ¶ÔÏó£¬ËüʵÏÖijЩÔÚ·þÎñÆ÷ÉÏÔËÐеÄÒµÎñÂß¼¡£
¶ÔÓÚ¿Í»§»ú£¬EntityBeanÊÇÒ»ÖÖ³Ö¾ÃÐÔ¶ÔÏó£¬Ëü´ú±íÒ»¸ö´æ´¢ÔÚ³Ö¾ÃÐÔ´æ´¢Æ÷ÖеÄʵÌåµÄ¶ÔÏóÊÓͼ£¬»òÊÇÒ»¸öÓÉÏÖÓÐÆóÒµÓ¦ÓóÌÐòʵÏÖµÄʵÌå¡£
Session Bean »¹¿ÉÒÔÔÙϸ·ÖΪ Stateful Session Bean Óë Stateless Session Bean £¬ÕâÁ½ÖÖµÄ Session Bean¶¼¿ÉÒÔ½«ÏµÍ³Âß¼·ÅÔÚ methodÖ®ÖÐÖ´ÐУ¬²»Í¬µÄÊÇ Stateful Session Bean ¿ÉÒԼǼºô½ÐÕßµÄ״̬£¬Òò´Ëͨ³£À´Ëµ£¬Ò»¸öʹÓÃÕß»áÓÐÒ»¸öÏà¶ÔÓ¦µÄ Stateful Session Bean µÄʵÌå¡£Stateless Session Bean ËäȻҲÊÇÂß¼×é¼þ£¬µ«ÊÇËûÈ´²»¸ºÔð¼Ç¼ʹÓÃÕß״̬£¬Ò²¾ÍÊÇ˵µ±Ê¹ÓÃÕߺô½Ð Stateless Session Bean µÄʱºò£¬EJB Container ²¢²»»áÕÒÑ°ÌØ¶¨µÄ Stateless Session Bean µÄʵÌåÀ´Ö´ÐÐÕâ¸ö method¡£»»ÑÔÖ®£¬ºÜ¿ÉÄÜÊý¸öʹÓÃÕßÔÚÖ´ÐÐij¸ö Stateless Session Bean µÄ methods ʱ£¬»áÊÇͬһ¸ö Bean µÄ Instance ÔÚÖ´ÐС£´ÓÄÚ´æ·½ÃæÀ´¿´£¬ Stateful Session Bean Óë Stateless Session Bean ±È½Ï£¬ Stateful Session Bean »áÏûºÄ J2EE Server ½Ï¶àµÄÄڴ棬Ȼ¶ø Stateful Session Bean µÄÓÅÊÆÈ´ÔÚÓÚËû¿ÉÒÔά³ÖʹÓÃÕßµÄ״̬¡£
9¡¢Collection ºÍ CollectionsµÄÇø±ð¡£
¡¡¡¡CollectionÊǼ¯ºÏÀàµÄÉϼ¶½Ó¿Ú£¬¼Ì³ÐÓëËûµÄ½Ó¿ÚÖ÷ÒªÓÐSet ºÍList.
CollectionsÊÇÕë¶Ô¼¯ºÏÀàµÄÒ»¸ö°ïÖúÀ࣬ËûÌṩһϵÁо²Ì¬·½·¨ÊµÏÖ¶Ô¸÷ÖÖ¼¯ºÏµÄËÑË÷¡¢ÅÅÐò¡¢Ḭ̈߳²È«»¯µÈ²Ù×÷¡£
10¡¢&ºÍ&&µÄÇø±ð¡£
&ÊÇλÔËËã·û£¬±íʾ°´Î»ÓëÔËË㣬&&ÊÇÂß¼ÔËËã·û£¬±íʾÂß¼Ó루and£©¡£
11¡¢HashMapºÍHashtableµÄÇø±ð¡£
HashMapÊÇHashtableµÄÇáÁ¿¼¶ÊµÏÖ£¨·ÇḬ̈߳²È«µÄʵÏÖ£©£¬ËûÃǶ¼Íê³ÉÁËMap½Ó¿Ú£¬Ö÷񻂿±ðÔÚÓÚHashMapÔÊÐí¿Õ£¨null£©¼üÖµ£¨key£©,ÓÉÓÚ·ÇḬ̈߳²È«£¬Ð§ÂÊÉÏ¿ÉÄܸßÓÚHashtable¡£
HashMapÔÊÐí½«null×÷Ϊһ¸öentryµÄkey»òÕßvalue£¬¶øHashtable²»ÔÊÐí¡£
HashMap°ÑHashtableµÄcontains·½·¨È¥µôÁË£¬¸Ä³ÉcontainsvalueºÍcontainsKey¡£ÒòΪcontains·½·¨ÈÝÒ×ÈÃÈËÒýÆðÎó½â¡£
Hashtable¼Ì³Ð×ÔDictionaryÀ࣬¶øHashMapÊÇJava1.2Òý½øµÄMap interfaceµÄÒ»¸öʵÏÖ¡£
×î´óµÄ²»Í¬ÊÇ£¬HashtableµÄ·½·¨ÊÇSynchronizeµÄ£¬¶øHashMap²»ÊÇ£¬ÔÚ¶à¸öÏ̷߳ÃÎÊHashtableʱ£¬²»ÐèÒª×Ô¼ºÎªËüµÄ·½·¨ÊµÏÖͬ²½£¬¶øHashMap ¾Í±ØÐëΪ֮ÌṩÍâͬ²½¡£
HashtableºÍHashMap²ÉÓõÄhash/rehashËã·¨¶¼´ó¸ÅÒ»Ñù£¬ËùÒÔÐÔÄܲ»»áÓкܴóµÄ²îÒì¡£
12¡¢final, finally, finalizeµÄÇø±ð¡£
¡¡¡¡final ÓÃÓÚÉùÃ÷ÊôÐÔ£¬·½·¨ºÍÀ࣬·Ö±ð±íʾÊôÐÔ²»¿É±ä£¬·½·¨²»¿É¸²¸Ç£¬À಻¿É¼Ì³Ð¡£
finallyÊÇÒì³£´¦ÀíÓï¾ä½á¹¹µÄÒ»²¿·Ö£¬±íʾ×ÜÊÇÖ´ÐС£
finalizeÊÇObjectÀàµÄÒ»¸ö·½·¨£¬ÔÚÀ¬»øÊÕ¼¯Æ÷Ö´ÐеÄʱºò»áµ÷Óñ»»ØÊÕ¶ÔÏóµÄ´Ë·½·¨£¬¿ÉÒÔ¸²¸Ç´Ë·½·¨ÌṩÀ¬»øÊÕ¼¯Ê±µÄÆäËû×ÊÔ´»ØÊÕ£¬ÀýÈç¹Ø±ÕÎļþµÈ¡£
13¡¢sleep() ºÍ wait() ÓÐÊ²Ã´Çø±ð?
sleepÊÇÏß³ÌÀࣨThread£©µÄ·½·¨£¬µ¼Ö´ËÏß³ÌÔÝÍ£Ö´ÐÐÖ¸¶¨Ê±¼ä£¬¸øÖ´Ðлú»á¸øÆäËûỊ̈߳¬µ«ÊÇ¼à¿Ø×´Ì¬ÒÀÈ»±£³Ö£¬µ½Ê±ºó»á×Ô¶¯»Ö¸´¡£µ÷ÓÃsleep²»»áÊͷŶÔÏóËø¡£
waitÊÇObjectÀàµÄ·½·¨£¬¶Ô´Ë¶ÔÏóµ÷ÓÃwait·½·¨µ¼Ö±¾Ïß³Ì·ÅÆú¶ÔÏóËø£¬½øÈëµÈ´ý´Ë¶ÔÏóµÄµÈ´ýËø¶¨³Ø£¬Ö»ÓÐÕë¶Ô´Ë¶ÔÏó·¢³önotify·½·¨£¨»ònotifyAll£©ºó±¾Ï̲߳ŽøÈë¶ÔÏóËø¶¨³Ø×¼±¸»ñµÃ¶ÔÏóËø½øÈëÔËÐÐ״̬¡£
14¡¢OverloadºÍOverrideµÄÇø±ð¡£OverloadedµÄ·½·¨ÊÇ·ñ¿ÉÒԸı䷵»ØÖµµÄÀàÐÍ?
·½·¨µÄÖØÐ´OverridingºÍÖØÔØOverloadingÊÇJava¶à̬ÐԵIJ»Í¬±íÏÖ¡£ÖØÐ´OverridingÊǸ¸ÀàÓë×ÓÀàÖ®¼ä¶à̬ÐÔµÄÒ»ÖÖ±íÏÖ£¬ÖØÔØOverloadingÊÇÒ»¸öÀàÖжà̬ÐÔµÄÒ»ÖÖ±íÏÖ¡£Èç¹ûÔÚ×ÓÀàÖж¨Òåij·½·¨ÓëÆä¸¸ÀàÓÐÏàͬµÄÃû³ÆºÍ²ÎÊý£¬ÎÒÃÇ˵¸Ã·½·¨±»ÖØÐ´ (Overriding)¡£×ÓÀàµÄ¶ÔÏóʹÓÃÕâ¸ö·½·¨Ê±£¬½«µ÷ÓÃ×ÓÀàÖе͍Ò壬¶ÔËü¶øÑÔ£¬¸¸ÀàÖе͍ÒåÈçͬ±»"ÆÁ±Î"ÁË¡£Èç¹ûÔÚÒ»¸öÀàÖж¨ÒåÁ˶à¸öͬÃûµÄ·½·¨£¬ËüÃÇ»òÓв»Í¬µÄ²ÎÊý¸öÊý»òÓв»Í¬µÄ²ÎÊýÀàÐÍ£¬Ôò³ÆÎª·½·¨µÄÖØÔØ(Overloading)¡£OverloadedµÄ·½·¨ÊÇ¿ÉÒԸı䷵»ØÖµµÄÀàÐÍ¡£
15¡¢errorºÍexceptionÓÐÊ²Ã´Çø±ð?
error ±íʾ»Ö¸´²»ÊDz»¿ÉÄܵ«ºÜÀ§ÄѵÄÇé¿öϵÄÒ»ÖÖÑÏÖØÎÊÌâ¡£±ÈÈç˵ÄÚ´æÒç³ö¡£²»¿ÉÄÜÖ¸Íû³ÌÐòÄÜ´¦ÀíÕâÑùµÄÇé¿ö¡£
exception ±íʾһÖÖÉè¼Æ»òʵÏÖÎÊÌâ¡£Ò²¾ÍÊÇ˵£¬Ëü±íʾÈç¹û³ÌÐòÔËÐÐÕý³££¬´Ó²»»á·¢ÉúµÄÇé¿ö¡£
16¡¢Í¬²½ºÍÒì²½ÓкÎÒìͬ£¬ÔÚʲôÇé¿öÏ·ֱðʹÓÃËûÃÇ£¿¾ÙÀý˵Ã÷¡£
Èç¹ûÊý¾Ý½«ÔÚÏ̼߳乲Ïí¡£ÀýÈçÕýÔÚдµÄÊý¾ÝÒÔºó¿ÉÄܱ»ÁíÒ»¸öÏ̶߳Áµ½£¬»òÕßÕýÔÚ¶ÁµÄÊý¾Ý¿ÉÄÜÒѾ±»ÁíÒ»¸öÏß³Ìд¹ýÁË£¬ÄÇôÕâЩÊý¾Ý¾ÍÊǹ²ÏíÊý¾Ý£¬±ØÐë½øÐÐͬ²½´æÈ¡¡£
µ±Ó¦ÓóÌÐòÔÚ¶ÔÏóÉϵ÷ÓÃÁËÒ»¸öÐèÒª»¨·ÑºÜ³¤Ê±¼äÀ´Ö´Ðеķ½·¨£¬²¢ÇÒ²»Ï£ÍûÈóÌÐòµÈ´ý·½·¨µÄ·µ»ØÊ±£¬¾ÍÓ¦¸ÃʹÓÃÒì²½±à³Ì£¬ÔںܶàÇé¿öϲÉÓÃÒ첽;¾¶ÍùÍù¸üÓÐЧÂÊ¡£
17¡¢abstract classºÍinterfaceÓÐÊ²Ã´Çø±ð?
ÉùÃ÷·½·¨µÄ´æÔÚ¶ø²»È¥ÊµÏÖËüµÄÀà±»½Ð×ö³éÏóÀࣨabstract class£©£¬ËüÓÃÓÚÒª´´½¨Ò»¸öÌåÏÖijЩ»ù±¾ÐÐΪµÄÀ࣬²¢Îª¸ÃÀàÉùÃ÷·½·¨£¬µ«²»ÄÜÔÚ¸ÃÀàÖÐʵÏÖ¸ÃÀàµÄÇé¿ö¡£²»ÄÜ´´½¨abstract ÀàµÄʵÀý¡£È»¶ø¿ÉÒÔ´´½¨Ò»¸ö±äÁ¿£¬ÆäÀàÐÍÊÇÒ»¸ö³éÏóÀ࣬²¢ÈÃËüÖ¸Ïò¾ßÌå×ÓÀàµÄÒ»¸öʵÀý¡£²»ÄÜÓгéÏó¹¹Ô캯Êý»ò³éÏó¾²Ì¬·½·¨¡£Abstract ÀàµÄ×ÓÀàΪËüÃǸ¸ÀàÖеÄËùÓгéÏó·½·¨ÌṩʵÏÖ£¬·ñÔòËüÃÇÒ²ÊdzéÏóÀàΪ¡£È¡¶ø´úÖ®£¬ÔÚ×ÓÀàÖÐʵÏָ÷½·¨¡£ÖªµÀÆäÐÐΪµÄÆäËüÀà¿ÉÒÔÔÚÀàÖÐʵÏÖÕâЩ·½·¨¡£
½Ó¿Ú£¨interface£©ÊdzéÏóÀàµÄ±äÌå¡£ÔÚ½Ó¿ÚÖУ¬ËùÓз½·¨¶¼ÊdzéÏóµÄ¡£¶à¼Ì³ÐÐÔ¿Éͨ¹ýʵÏÖÕâÑùµÄ½Ó¿Ú¶ø»ñµÃ¡£½Ó¿ÚÖеÄËùÓз½·¨¶¼ÊdzéÏóµÄ£¬Ã»ÓÐÒ»¸öÓгÌÐòÌå¡£½Ó¿ÚÖ»¿ÉÒÔ¶¨Òåstatic final³ÉÔ±±äÁ¿¡£½Ó¿ÚµÄʵÏÖÓë×ÓÀàÏàËÆ£¬³ýÁ˸ÃʵÏÖÀ಻ÄÜ´Ó½Ó¿Ú¶¨ÒåÖм̳ÐÐÐΪ¡£µ±ÀàʵÏÖÌØÊâ½Ó¿Úʱ£¬Ëü¶¨Ò壨¼´½«³ÌÐòÌ司Ó裩ËùÓÐÕâÖֽӿڵķ½·¨¡£È»ºó£¬Ëü¿ÉÒÔÔÚʵÏÖÁ˸ýӿڵÄÀàµÄÈκζÔÏóÉϵ÷Óýӿڵķ½·¨¡£ÓÉÓÚÓгéÏóÀ࣬ËüÔÊÐíʹÓýӿÚÃû×÷ΪÒýÓñäÁ¿µÄÀàÐÍ¡£Í¨³£µÄ¶¯Ì¬Áª±à½«ÉúЧ¡£ÒýÓÿÉÒÔת»»µ½½Ó¿ÚÀàÐÍ»ò´Ó½Ó¿ÚÀàÐÍת»»£¬instanceof ÔËËã·û¿ÉÒÔÓÃÀ´¾ö¶¨Ä³¶ÔÏóµÄÀàÊÇ·ñʵÏÖÁ˽ӿڡ£
18¡¢heapºÍstackÓÐÊ²Ã´Çø±ð¡£
Õ»ÊÇÒ»ÖÖÏßÐμ¯ºÏ£¬ÆäÌí¼ÓºÍɾ³ýÔªËØµÄ²Ù×÷Ó¦ÔÚͬһ¶ÎÍê³É¡£Õ»°´ÕÕºó½øÏȳöµÄ·½Ê½½øÐд¦Àí¡£
¶ÑÊÇÕ»µÄÒ»¸ö×é³ÉÔªËØ
19¡¢forward ºÍredirectµÄÇø±ð
forwardÊÇ·þÎñÆ÷ÇëÇó×ÊÔ´£¬·þÎñÆ÷Ö±½Ó·ÃÎÊÄ¿±êµØÖ·µÄURL£¬°ÑÄǸöURLµÄÏìÓ¦ÄÚÈݶÁÈ¡¹ýÀ´£¬È»ºó°ÑÕâЩÄÚÈÝÔÙ·¢¸øä¯ÀÀÆ÷£¬ä¯ÀÀÆ÷¸ù±¾²»ÖªµÀ·þÎñÆ÷·¢Ë͵ÄÄÚÈÝÊÇ´ÓÄĶùÀ´µÄ£¬ËùÒÔËüµÄµØÖ·À¸Öл¹ÊÇÔÀ´µÄµØÖ·¡£
redirect¾ÍÊÇ·þÎñ¶Ë¸ù¾ÝÂß¼,·¢ËÍÒ»¸ö״̬Âë,¸æËßä¯ÀÀÆ÷ÖØÐÂÈ¥ÇëÇóÄǸöµØÖ·£¬Ò»°ãÀ´Ëµä¯ÀÀÆ÷»áÓøղÅÇëÇóµÄËùÓвÎÊýÖØÐÂÇëÇó£¬ËùÒÔsession,request²ÎÊý¶¼¿ÉÒÔ»ñÈ¡¡£
20¡¢EJBÓëJAVA BEANµÄÇø±ð£¿
Java Bean Êǿɸ´ÓõÄ×é¼þ£¬¶ÔJava Bean²¢Ã»ÓÐÑϸñµÄ¹æ·¶£¬ÀíÂÛÉϽ²£¬ÈκÎÒ»¸öJavaÀà¶¼¿ÉÒÔÊÇÒ»¸öBean¡£µ«Í¨³£Çé¿öÏ£¬ÓÉÓÚJava BeanÊDZ»ÈÝÆ÷Ëù´´½¨£¨ÈçTomcat£©µÄ£¬ËùÒÔJava BeanÓ¦¾ßÓÐÒ»¸öÎ޲εĹ¹ÔìÆ÷£¬ÁíÍ⣬ͨ³£Java Bean»¹ÒªÊµÏÖSerializable½Ó¿ÚÓÃÓÚʵÏÖBeanµÄ³Ö¾ÃÐÔ¡£Java Beanʵ¼ÊÉÏÏ൱ÓÚ΢ÈíCOMÄ£ÐÍÖеı¾µØ½ø³ÌÄÚCOM×é¼þ£¬ËüÊDz»Äܱ»¿ç½ø³Ì·ÃÎʵġ£Enterprise Java Bean Ï൱ÓÚDCOM£¬¼´·Ö²¼Ê½×é¼þ¡£ËüÊÇ»ùÓÚJavaµÄÔ¶³Ì·½·¨µ÷Óã¨RMI£©¼¼ÊõµÄ£¬ËùÒÔEJB¿ÉÒÔ±»Ô¶³Ì·ÃÎÊ£¨¿ç½ø³Ì¡¢¿ç¼ÆËã»ú£©¡£µ«EJB±ØÐë±»²¼ÊðÔÚÖîÈçWebspere¡¢WebLogicÕâÑùµÄÈÝÆ÷ÖУ¬EJB¿Í»§´Ó²»Ö±½Ó·ÃÎÊÕæÕýµÄEJB×é¼þ£¬¶øÊÇͨ¹ýÆäÈÝÆ÷·ÃÎÊ¡£EJBÈÝÆ÷ÊÇEJB×é¼þµÄ´úÀí£¬EJB×é¼þÓÉÈÝÆ÷Ëù´´½¨ºÍ¹ÜÀí¡£¿Í»§Í¨¹ýÈÝÆ÷À´·ÃÎÊÕæÕýµÄEJB×é¼þ¡£
21¡¢Static Nested Class ºÍ Inner ClassµÄ²»Í¬¡£
Static Nested ClassÊDZ»ÉùÃ÷Ϊ¾²Ì¬£¨static£©µÄÄÚ²¿À࣬Ëü¿ÉÒÔ²»ÒÀÀµÓÚÍⲿÀàʵÀý±»ÊµÀý»¯¡£¶øÍ¨³£µÄÄÚ²¿ÀàÐèÒªÔÚÍⲿÀàʵÀý»¯ºó²ÅÄÜʵÀý»¯¡£
22¡¢JSPÖж¯Ì¬INCLUDEÓ뾲̬INCLUDEµÄÇø±ð£¿
¶¯Ì¬INCLUDEÓÃjsp:include¶¯×÷ʵÏÖ <jsp:include page="included.jsp" flush="true" />Ëü×ÜÊÇ»á¼ì²éËùº¬ÎļþÖеı仯£¬ÊʺÏÓÃÓÚ°üº¬¶¯Ì¬Ò³Ã棬²¢ÇÒ¿ÉÒÔ´ø²ÎÊý¡£
¾²Ì¬INCLUDEÓÃincludeαÂëʵÏÖ,¶¨²»»á¼ì²éËùº¬ÎļþµÄ±ä»¯£¬ÊÊÓÃÓÚ°üº¬¾²Ì¬Ò³Ãæ<%@ include file="included.htm" %>
23¡¢Ê²Ã´Ê±ºòÓÃassert¡£
assertion(¶ÏÑÔ)ÔÚÈí¼þ¿ª·¢ÖÐÊÇÒ»ÖÖ³£Óõĵ÷ÊÔ·½Ê½£¬ºÜ¶à¿ª·¢ÓïÑÔÖж¼Ö§³ÖÕâÖÖ»úÖÆ¡£ÔÚʵÏÖÖУ¬assertion¾ÍÊÇÔÚ³ÌÐòÖеÄÒ»ÌõÓï¾ä£¬Ëü¶ÔÒ»¸öboolean±í´ïʽ½øÐмì²é£¬Ò»¸öÕýÈ·³ÌÐò±ØÐë±£Ö¤Õâ¸öboolean±í´ïʽµÄֵΪtrue£»Èç¹û¸ÃֵΪfalse£¬ËµÃ÷³ÌÐòÒѾ´¦ÓÚ²»ÕýÈ·µÄ״̬Ï£¬ÏµÍ³½«¸ø³ö¾¯¸æ»òÍ˳ö¡£Ò»°ãÀ´Ëµ£¬assertionÓÃÓÚ±£Ö¤³ÌÐò×î»ù±¾¡¢¹Ø¼üµÄÕýÈ·ÐÔ¡£assertion¼ì²éͨ³£ÔÚ¿ª·¢ºÍ²âÊÔʱ¿ªÆô¡£ÎªÁËÌá¸ßÐÔÄÜ£¬ÔÚÈí¼þ·¢²¼ºó£¬assertion¼ì²éͨ³£Êǹرյġ£
24¡¢GCÊÇʲô? ΪʲôҪÓÐGC?
¡¡¡¡GCÊÇÀ¬»øÊÕ¼¯µÄÒâ˼£¨Gabage Collection£©,ÄÚ´æ´¦ÀíÊDZà³ÌÈËÔ±ÈÝÒ׳öÏÖÎÊÌâµÄµØ·½£¬Íü¼Ç»òÕß´íÎóµÄÄÚ´æ»ØÊջᵼÖ³ÌÐò»òϵͳµÄ²»Îȶ¨ÉõÖÁ±ÀÀ££¬JavaÌṩµÄGC¹¦ÄÜ¿ÉÒÔ×Ô¶¯¼à²â¶ÔÏóÊÇ·ñ³¬¹ý×÷ÓÃÓò´Ó¶ø´ïµ½×Ô¶¯»ØÊÕÄÚ´æµÄÄ¿µÄ£¬JavaÓïÑÔûÓÐÌṩÊÍ·ÅÒÑ·ÖÅäÄÚ´æµÄÏÔʾ²Ù×÷·½·¨¡£
25¡¢short s1 = 1; s1 = s1 + 1;ÓÐʲô´í? short s1 = 1; s1 += 1;ÓÐʲô´í?
short s1 = 1; s1 = s1 + 1; £¨s1+1ÔËËã½á¹ûÊÇintÐÍ£¬ÐèÒªÇ¿ÖÆ×ª»»ÀàÐÍ£©
short s1 = 1; s1 += 1;£¨¿ÉÒÔÕýÈ·±àÒ룩
26¡¢Math.round(11.5)µÈì¶¶àÉÙ? Math.round(-11.5)µÈì¶¶àÉÙ?
Math.round(11.5)==12
Math.round(-11.5)==-11
round·½·¨·µ»ØÓë²ÎÊý×î½Ó½üµÄ³¤ÕûÊý£¬²ÎÊý¼Ó1/2ºóÇóÆäfloor.
27¡¢String s = new String("xyz");´´½¨Á˼¸¸öString Object?
Á½¸ö
28¡¢Éè¼Æ4¸öỊ̈߳¬ÆäÖÐÁ½¸öÏß³Ìÿ´Î¶ÔjÔö¼Ó1£¬ÁíÍâÁ½¸öÏ̶߳Ôjÿ´Î¼õÉÙ1¡£Ð´³ö³ÌÐò¡£
ÒÔϳÌÐòʹÓÃÄÚ²¿ÀàʵÏÖỊ̈߳¬¶ÔjÔö¼õµÄʱºòûÓп¼ÂÇ˳ÐòÎÊÌâ¡£
public class ThreadTest1{
private int j;
public static void main(String args[]){
ThreadTest1 tt=new ThreadTest1();
Inc inc=tt.new Inc();
Dec dec=tt.new Dec();
for(int i=0;i<2;i++){
Thread t=new Thread(inc);
t.start();
t=new Thread(dec);
t.start();
}
}
private synchronized void inc(){
j++;
System.out.println(Thread.currentThread().getName()+"-inc:"+j);
}
private synchronized void dec(){
j--;
System.out.println(Thread.currentThread().getName()+"-dec:"+j);
}
class Inc implements Runnable{
public void run(){
for(int i=0;i<100;i++){
inc();
}
}
}
class Dec implements Runnable{
public void run(){
for(int i=0;i<100;i++){
dec();
}
}
}
}
29¡¢JavaÓÐûÓÐgoto?
javaÖеı£Áô×Ö£¬ÏÖÔÚûÓÐÔÚjavaÖÐʹÓá£
30¡¢Æô¶¯Ò»¸öÏß³ÌÊÇÓÃrun()»¹ÊÇstart()?
Æô¶¯Ò»¸öÏß³ÌÊǵ÷ÓÃstart()·½·¨£¬Ê¹Ïß³ÌËù´ú±íµÄÐéÄâ´¦Àí»ú´¦ÓÚ¿ÉÔËÐÐ״̬£¬ÕâÒâζ×ÅËü¿ÉÒÔÓÉJVMµ÷¶È²¢Ö´ÐС£Õâ²¢²»Òâζ×ÅÏ߳̾ͻáÁ¢¼´ÔËÐС£run()·½·¨¿ÉÒÔ²úÉú±ØÐëÍ˳öµÄ±êÖ¾À´Í£Ö¹Ò»¸öÏ̡߳£
31¡¢EJB°üÀ¨£¨SessionBean,EntityBean£©Ëµ³öËûÃǵÄÉúÃüÖÜÆÚ£¬¼°ÈçºÎ¹ÜÀíÊÂÎñµÄ£¿
SessionBean£ºStateless Session Bean µÄÉúÃüÖÜÆÚÊÇÓÉÈÝÆ÷¾ö¶¨µÄ£¬µ±¿Í»§»ú·¢³öÇëÇóÒª½¨Á¢Ò»¸öBeanµÄʵÀýʱ£¬EJBÈÝÆ÷²»Ò»¶¨Òª´´½¨Ò»¸öеÄBeanµÄʵÀý¹©¿Í»§»úµ÷Ó㬶øÊÇËæ±ãÕÒÒ»¸öÏÖÓеÄʵÀýÌṩ¸ø¿Í»§»ú¡£µ±¿Í»§»úµÚÒ»´Îµ÷ÓÃÒ»¸öStateful Session Bean ʱ£¬ÈÝÆ÷±ØÐëÁ¢¼´ÔÚ·þÎñÆ÷Öд´½¨Ò»¸öеÄBeanʵÀý£¬²¢¹ØÁªµ½¿Í»§»úÉÏ£¬ÒÔºó´Ë¿Í»§»úµ÷ÓÃStateful Session Bean µÄ·½·¨Ê±ÈÝÆ÷»á°Ñµ÷Ó÷ÖÅɵ½Óë´Ë¿Í»§»úÏà¹ØÁªµÄBeanʵÀý¡£
EntityBean£ºEntity BeansÄÜ´æ»îÏà¶Ô½Ï³¤µÄʱ¼ä£¬²¢ÇÒ״̬ÊdzÖÐøµÄ¡£Ö»ÒªÊý¾Ý¿âÖеÄÊý¾Ý´æÔÚ£¬Entity beans¾ÍÒ»Ö±´æ»î¡£¶ø²»Êǰ´ÕÕÓ¦ÓóÌÐò»òÕß·þÎñ½ø³ÌÀ´ËµµÄ¡£¼´Ê¹EJBÈÝÆ÷±ÀÀ£ÁË£¬Entity beansÒ²ÊÇ´æ»îµÄ¡£Entity BeansÉúÃüÖÜÆÚÄܹ»±»ÈÝÆ÷»òÕß Beans×Ô¼º¹ÜÀí¡£
EJBͨ¹ýÒÔϼ¼Êõ¹ÜÀíʵÎñ£º¶ÔÏó¹ÜÀí×éÖ¯£¨OMG£©µÄ¶ÔÏóʵÎñ·þÎñ£¨OTS£©£¬Sun MicrosystemsµÄTransaction Service£¨JTS£©¡¢Java Transaction API£¨JTA£©£¬¿ª·¢×飨X/Open£©µÄXA½Ó¿Ú¡£
32¡¢Ó¦Ó÷þÎñÆ÷ÓÐÄÇЩ£¿
BEA WebLogic Server£¬IBM WebSphere Application Server£¬Oracle9i Application Server£¬jBoss£¬Tomcat
33¡¢¸øÎÒÒ»¸öÄã×î³£¼ûµ½µÄruntime exception¡£
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
34¡¢½Ó¿ÚÊÇ·ñ¿É¼Ì³Ð½Ó¿Ú? ³éÏóÀàÊÇ·ñ¿ÉʵÏÖ(implements)½Ó¿Ú? ³éÏóÀàÊÇ·ñ¿É¼Ì³ÐʵÌåÀà(concrete class)?
½Ó¿Ú¿ÉÒԼ̳нӿڡ£³éÏóÀà¿ÉÒÔʵÏÖ(implements)½Ó¿Ú£¬³éÏóÀàÊÇ·ñ¿É¼Ì³ÐʵÌåÀ࣬µ«Ç°ÌáÊÇʵÌåÀà±ØÐëÓÐÃ÷È·µÄ¹¹Ô캯Êý¡£
35¡¢List, Set, MapÊÇ·ñ¼Ì³Ð×ÔCollection½Ó¿Ú?
List£¬SetÊÇ£¬Map²»ÊÇ
36¡¢Ëµ³öÊý¾ÝÁ¬½Ó³ØµÄ¹¤×÷»úÖÆÊÇʲô?
J2EE·þÎñÆ÷Æô¶¯Ê±»á½¨Á¢Ò»¶¨ÊýÁ¿µÄ³ØÁ¬½Ó£¬²¢Ò»Ö±Î¬³Ö²»ÉÙÓÚ´ËÊýÄ¿µÄ³ØÁ¬½Ó¡£¿Í»§¶Ë³ÌÐòÐèÒªÁ¬½Óʱ£¬³ØÇý¶¯³ÌÐò»á·µ»ØÒ»¸öδʹÓõijØÁ¬½Ó²¢½«Æä±í¼ÇΪæ¡£Èç¹ûµ±Ç°Ã»ÓпÕÏÐÁ¬½Ó£¬³ØÇý¶¯³ÌÐò¾Íн¨Ò»¶¨ÊýÁ¿µÄÁ¬½Ó£¬Ð½¨Á¬½ÓµÄÊýÁ¿ÓÐÅäÖòÎÊý¾ö¶¨¡£µ±Ê¹ÓõijØÁ¬½Óµ÷ÓÃÍê³Éºó£¬³ØÇý¶¯³ÌÐò½«´ËÁ¬½Ó±í¼ÇΪ¿ÕÏУ¬ÆäËûµ÷ÓþͿÉÒÔʹÓÃÕâ¸öÁ¬½Ó¡£
37¡¢abstractµÄmethodÊÇ·ñ¿ÉͬʱÊÇstatic,ÊÇ·ñ¿ÉͬʱÊÇnative£¬ÊÇ·ñ¿ÉͬʱÊÇsynchronized?
¶¼²»ÄÜ
38¡¢Êý×éÓÐûÓÐlength()Õâ¸ö·½·¨? StringÓÐûÓÐlength()Õâ¸ö·½·¨£¿
Êý×éûÓÐlength()Õâ¸ö·½·¨£¬ÓÐlengthµÄÊôÐÔ¡£StringÓÐÓÐlength()Õâ¸ö·½·¨¡£
39¡¢SetÀïµÄÔªËØÊDz»ÄÜÖØ¸´µÄ£¬ÄÇôÓÃʲô·½·¨À´Çø·ÖÖØ¸´Óë·ñÄØ? ÊÇÓÃ==»¹ÊÇequals()? ËüÃÇÓкÎÇø±ð?
SetÀïµÄÔªËØÊDz»ÄÜÖØ¸´µÄ£¬ÄÇôÓÃiterator()·½·¨À´Çø·ÖÖØ¸´Óë·ñ¡£equals()ÊÇÅжÁÁ½¸öSetÊÇ·ñÏàµÈ¡£
equals()ºÍ==·½·¨¾ö¶¨ÒýÓÃÖµÊÇ·ñÖ¸Ïòͬһ¶ÔÏóequals()ÔÚÀàÖб»¸²¸Ç£¬ÎªµÄÊǵ±Á½¸ö·ÖÀëµÄ¶ÔÏóµÄÄÚÈݺÍÀàÐÍÏàÅäµÄ»°£¬·µ»ØÕæÖµ¡£
40¡¢¹¹ÔìÆ÷ConstructorÊÇ·ñ¿É±»override?
¹¹ÔìÆ÷Constructor²»Äܱ»¼Ì³Ð£¬Òò´Ë²»ÄÜÖØÐ´Overriding£¬µ«¿ÉÒÔ±»ÖØÔØOverloading¡£
41¡¢ÊÇ·ñ¿ÉÒԼ̳ÐStringÀà?
StringÀàÊÇfinalÀà¹Ê²»¿ÉÒԼ̳С£
42¡¢swtichÊÇ·ñÄÜ×÷ÓÃÔÚbyteÉÏ£¬ÊÇ·ñÄÜ×÷ÓÃÔÚlongÉÏ£¬ÊÇ·ñÄÜ×÷ÓÃÔÚStringÉÏ?
switch£¨expr1£©ÖУ¬expr1ÊÇÒ»¸öÕûÊý±í´ïʽ¡£Òò´Ë´«µÝ¸ø switch ºÍ case Óï¾äµÄ²ÎÊýÓ¦¸ÃÊÇ int¡¢ short¡¢ char »òÕß byte¡£long,string ¶¼²»ÄÜ×÷ÓÃÓÚswtich¡£
43¡¢try {}ÀïÓÐÒ»¸öreturnÓï¾ä£¬ÄÇô½ô¸úÔÚÕâ¸ötryºóµÄfinally {}ÀïµÄcode»á²»»á±»Ö´ÐУ¬Ê²Ã´Ê±ºò±»Ö´ÐУ¬ÔÚreturnǰ»¹ÊǺó?
»áÖ´ÐУ¬ÔÚreturnǰִÐС£
44¡¢±à³ÌÌâ: ÓÃ×îÓÐЧÂʵķ½·¨Ëã³ö2³ËÒÔ8µÈì¶¼¸?
2 << 3
45¡¢Á½¸ö¶ÔÏóÖµÏàͬ(x.equals(y) == true)£¬µ«È´¿ÉÓв»Í¬µÄhash code£¬Õâ¾ä»°¶Ô²»¶Ô?
²»¶Ô£¬ÓÐÏàͬµÄhash code¡£
46¡¢µ±Ò»¸ö¶ÔÏó±»µ±×÷²ÎÊý´«µÝµ½Ò»¸ö·½·¨ºó£¬´Ë·½·¨¿É¸Ä±äÕâ¸ö¶ÔÏóµÄÊôÐÔ£¬²¢¿É·µ»Ø±ä»¯ºóµÄ½á¹û£¬ÄÇôÕâÀïµ½µ×ÊÇÖµ´«µÝ»¹ÊÇÒýÓô«µÝ?
ÊÇÖµ´«µÝ¡£Java ±à³ÌÓïÑÔÖ»ÓÐÖµ´«µÝ²ÎÊý¡£µ±Ò»¸ö¶ÔÏóʵÀý×÷Ϊһ¸ö²ÎÊý±»´«µÝµ½·½·¨ÖÐʱ£¬²ÎÊýµÄÖµ¾ÍÊǶԸöÔÏóµÄÒýÓ᣶ÔÏóµÄÄÚÈÝ¿ÉÒÔÔÚ±»µ÷Óõķ½·¨Öиı䣬µ«¶ÔÏóµÄÒýÓÃÊÇÓÀÔ¶²»»á¸Ä±äµÄ¡£
47¡¢µ±Ò»¸öÏ߳̽øÈëÒ»¸ö¶ÔÏóµÄÒ»¸ösynchronized·½·¨ºó£¬ÆäËüÏß³ÌÊÇ·ñ¿É½øÈë´Ë¶ÔÏóµÄÆäËü·½·¨?
²»ÄÜ£¬Ò»¸ö¶ÔÏóµÄÒ»¸ösynchronized·½·¨Ö»ÄÜÓÉÒ»¸öÏ̷߳ÃÎÊ¡£
48¡¢±à³ÌÌâ: дһ¸öSingleton³öÀ´¡£
SingletonģʽÖ÷Òª×÷ÓÃÊDZ£Ö¤ÔÚJavaÓ¦ÓóÌÐòÖУ¬Ò»¸öÀàClassÖ»ÓÐÒ»¸öʵÀý´æÔÚ¡£
Ò»°ãSingletonģʽͨ³£Óм¸ÖÖÖÖÐÎʽ:
µÚÒ»ÖÖÐÎʽ: ¶¨ÒåÒ»¸öÀ࣬ËüµÄ¹¹Ô캯ÊýΪprivateµÄ£¬ËüÓÐÒ»¸östaticµÄprivateµÄ¸ÃÀà±äÁ¿£¬ÔÚÀà³õʼ»¯Ê±ÊµÀý»°£¬Í¨¹ýÒ»¸öpublicµÄgetInstance·½·¨»ñÈ¡¶ÔËüµÄÒýÓÃ,¼Ì¶øµ÷ÓÃÆäÖеķ½·¨¡£
public class Singleton {
private Singleton(){}
¡¡¡¡ //ÔÚ×Ô¼ºÄÚ²¿¶¨Òå×Ô¼ºÒ»¸öʵÀý£¬ÊDz»ÊÇºÜÆæ¹Ö£¿
¡¡¡¡ //×¢ÒâÕâÊÇprivate Ö»¹©ÄÚ²¿µ÷ÓÃ
¡¡¡¡ private static Singleton instance = new Singleton();
¡¡¡¡ //ÕâÀïÌṩÁËÒ»¸ö¹©Íⲿ·ÃÎʱ¾classµÄ¾²Ì¬·½·¨£¬¿ÉÒÔÖ±½Ó·ÃÎÊ¡¡¡¡
¡¡¡¡ public static Singleton getInstance() {
¡¡¡¡¡¡¡¡ return instance; ¡¡¡¡
¡¡¡¡ }
}
µÚ¶þÖÖÐÎʽ:
public class Singleton {
¡¡¡¡private static Singleton instance = null;
¡¡¡¡public static synchronized Singleton getInstance() {
¡¡¡¡//Õâ¸ö·½·¨±ÈÉÏÃæÓÐËù¸Ä½ø£¬²»ÓÃÿ´Î¶¼½øÐÐÉú³É¶ÔÏó£¬Ö»ÊǵÚÒ»´Î¡¡¡¡¡¡ ¡¡
¡¡¡¡//ʹÓÃʱÉú³ÉʵÀý£¬Ìá¸ßÁËЧÂÊ£¡
¡¡¡¡if (instance==null)
¡¡¡¡¡¡¡¡instance£½new Singleton();
return instance; ¡¡¡¡}
}
ÆäËûÐÎʽ:
¶¨ÒåÒ»¸öÀ࣬ËüµÄ¹¹Ô캯ÊýΪprivateµÄ£¬ËùÓз½·¨ÎªstaticµÄ¡£
Ò»°ãÈÏΪµÚÒ»ÖÖÐÎʽҪ¸ü¼Ó°²È«Ð©
49¡¢JavaµÄ½Ó¿ÚºÍC++µÄÐéÀàµÄÏàͬºÍ²»Í¬´¦¡£
ÓÉÓÚJava²»Ö§³Ö¶à¼Ì³Ð£¬¶øÓпÉÄÜij¸öÀà»ò¶ÔÏóҪʹÓ÷ֱðÔÚ¼¸¸öÀà»ò¶ÔÏóÀïÃæµÄ·½·¨»òÊôÐÔ£¬ÏÖÓеĵ¥¼Ì³Ð»úÖÆ¾Í²»ÄÜÂú×ãÒªÇó¡£Óë¼Ì³ÐÏà±È£¬½Ó¿ÚÓиü¸ßµÄÁé»îÐÔ£¬ÒòΪ½Ó¿ÚÖÐûÓÐÈκÎʵÏÖ´úÂë¡£µ±Ò»¸öÀàʵÏÖÁ˽ӿÚÒԺ󣬸ÃÀàҪʵÏÖ½Ó¿ÚÀïÃæËùÓеķ½·¨ºÍÊôÐÔ£¬²¢ÇÒ½Ó¿ÚÀïÃæµÄÊôÐÔÔÚĬÈÏ״̬ÏÂÃæ¶¼ÊÇpublic static,ËùÓз½·¨Ä¬ÈÏÇé¿öÏÂÊÇpublic.Ò»¸öÀà¿ÉÒÔʵÏÖ¶à¸ö½Ó¿Ú¡£
50¡¢JavaÖеÄÒì³£´¦Àí»úÖÆµÄ¼òµ¥ÔÀíºÍÓ¦Óá£
µ±JAVA³ÌÐòÎ¥·´ÁËJAVAµÄÓïÒ广Ôòʱ£¬JAVAÐéÄâ»ú¾Í»á½«·¢ÉúµÄ´íÎó±íʾΪһ¸öÒì³£¡£Î¥·´ÓïÒ广Ôò°üÀ¨2ÖÖÇé¿ö¡£Ò»ÖÖÊÇJAVAÀà¿âÄÚÖõÄÓïÒå¼ì²é¡£ÀýÈçÊý×éϱêÔ½½ç,»áÒý·¢IndexOutOfBoundsException;·ÃÎÊnullµÄ¶ÔÏóʱ»áÒý·¢NullPointerException¡£ÁíÒ»ÖÖÇé¿ö¾ÍÊÇJAVAÔÊÐí³ÌÐòÔ±À©Õ¹ÕâÖÖÓïÒå¼ì²é£¬³ÌÐòÔ±¿ÉÒÔ´´½¨×Ô¼ºµÄÒì³££¬²¢×ÔÓÉÑ¡ÔñÔÚºÎʱÓÃthrow¹Ø¼ü×ÖÒý·¢Òì³£¡£ËùÓеÄÒì³£¶¼ÊÇjava.lang.ThowableµÄ×ÓÀà¡£
51¡¢À¬»ø»ØÊÕµÄÓŵãºÍÔÀí¡£²¢¿¼ÂÇ2ÖÖ»ØÊÕ»úÖÆ¡£
JavaÓïÑÔÖÐÒ»¸öÏÔÖøµÄÌØµã¾ÍÊÇÒýÈëÁËÀ¬»ø»ØÊÕ»úÖÆ£¬Ê¹c++³ÌÐòÔ±×îÍ·ÌÛµÄÄÚ´æ¹ÜÀíµÄÎÊÌâÓÈжø½â£¬ËüʹµÃJava³ÌÐòÔ±ÔÚ±àд³ÌÐòµÄʱºò²»ÔÙÐèÒª¿¼ÂÇÄÚ´æ¹ÜÀí¡£ÓÉÓÚÓиöÀ¬»ø»ØÊÕ»úÖÆ£¬JavaÖеĶÔÏó²»ÔÙÓÐ"×÷ÓÃÓò"µÄ¸ÅÄֻÓжÔÏóµÄÒýÓòÅÓÐ"×÷ÓÃÓò"¡£À¬»ø»ØÊÕ¿ÉÒÔÓÐЧµÄ·ÀÖ¹ÄÚ´æÐ¹Â¶£¬ÓÐЧµÄʹÓÿÉÒÔʹÓõÄÄÚ´æ¡£À¬»ø»ØÊÕÆ÷ͨ³£ÊÇ×÷Ϊһ¸öµ¥¶ÀµÄµÍ¼¶±ðµÄÏß³ÌÔËÐУ¬²»¿ÉÔ¤ÖªµÄÇé¿ö϶ÔÄÚ´æ¶ÑÖÐÒѾËÀÍöµÄ»òÕß³¤Ê±¼äûÓÐʹÓõĶÔÏó½øÐÐÇå³þºÍ»ØÊÕ£¬³ÌÐòÔ±²»ÄÜʵʱµÄµ÷ÓÃÀ¬»ø»ØÊÕÆ÷¶Ôij¸ö¶ÔÏó»òËùÓжÔÏó½øÐÐÀ¬»ø»ØÊÕ¡£»ØÊÕ»úÖÆÓзִú¸´ÖÆÀ¬»ø»ØÊպͱê¼ÇÀ¬»ø»ØÊÕ£¬ÔöÁ¿À¬»ø»ØÊÕ¡£
52¡¢Çë˵³öÄãËùÖªµÀµÄÏß³Ìͬ²½µÄ·½·¨¡£
wait():ʹһ¸öÏ̴߳¦Óڵȴý״̬£¬²¢ÇÒÊÍ·ÅËù³ÖÓеĶÔÏóµÄlock¡£
sleep():ʹһ¸öÕýÔÚÔËÐеÄÏ̴߳¦ÓÚ˯Ãß״̬£¬ÊÇÒ»¸ö¾²Ì¬·½·¨£¬µ÷Óô˷½·¨Òª²¶×½InterruptedExceptionÒì³£¡£
notify():»½ÐÑÒ»¸ö´¦Óڵȴý״̬µÄỊ̈߳¬×¢ÒâµÄÊÇÔÚµ÷Óô˷½·¨µÄʱºò£¬²¢²»ÄÜÈ·ÇеϽÐÑijһ¸öµÈ´ý״̬µÄỊ̈߳¬¶øÊÇÓÉJVMÈ·¶¨»½ÐÑÄĸöỊ̈߳¬¶øÇÒ²»Êǰ´ÓÅÏȼ¶¡£
Allnotity():»½ÐÑËùÓд¦ÈëµÈ´ý״̬µÄỊ̈߳¬×¢Òâ²¢²»ÊǸøËùÓл½ÐÑÏß³ÌÒ»¸ö¶ÔÏóµÄËø£¬¶øÊÇÈÃËüÃǾºÕù¡£
53¡¢ÄãËùÖªµÀµÄ¼¯ºÏÀà¶¼ÓÐÄÄЩ£¿Ö÷Òª·½·¨£¿
×î³£Óõļ¯ºÏÀàÊÇ List ºÍ Map¡£ List µÄ¾ßÌåʵÏÖ°üÀ¨ ArrayList ºÍ Vector£¬ËüÃÇÊǿɱä´óСµÄÁÐ±í£¬±È½ÏÊʺϹ¹½¨¡¢´æ´¢ºÍ²Ù×÷ÈκÎÀàÐͶÔÏóµÄÔªËØÁÐ±í¡£ List ÊÊÓÃÓÚ°´ÊýÖµË÷Òý·ÃÎÊÔªËØµÄÇéÐΡ£
Map ÌṩÁËÒ»¸ö¸üͨÓõÄÔªËØ´æ´¢·½·¨¡£ Map ¼¯ºÏÀàÓÃÓÚ´æ´¢ÔªËØ¶Ô£¨³Æ×÷"¼ü"ºÍ"Öµ"£©£¬ÆäÖÐÿ¸ö¼üÓ³Éäµ½Ò»¸öÖµ¡£
54¡¢ÃèÊöÒ»ÏÂJVM¼ÓÔØclassÎļþµÄÔÀí»úÖÆ?
JVMÖÐÀàµÄ×°ÔØÊÇÓÉClassLoaderºÍËüµÄ×ÓÀàÀ´ÊµÏÖµÄ,Java ClassLoader ÊÇÒ»¸öÖØÒªµÄJavaÔËÐÐʱϵͳ×é¼þ¡£Ëü¸ºÔðÔÚÔËÐÐʱ²éÕÒºÍ×°ÈëÀàÎļþµÄÀà¡£
55¡¢charÐͱäÁ¿ÖÐÄܲ»ÄÜ´æÖüÒ»¸öÖÐÎĺº×Ö?Ϊʲô?
Äܹ»¶¨Òå³ÉΪһ¸öÖÐÎĵģ¬ÒòΪjavaÖÐÒÔunicode±àÂ룬һ¸öcharÕ¼16¸ö×Ö½Ú£¬ËùÒÔ·ÅÒ»¸öÖÐÎÄÊÇûÎÊÌâµÄ
56¡¢¶àÏß³ÌÓм¸ÖÖʵÏÖ·½·¨,¶¼ÊÇʲô?ͬ²½Óм¸ÖÖʵÏÖ·½·¨,¶¼ÊÇʲô?
¶àÏß³ÌÓÐÁ½ÖÖʵÏÖ·½·¨£¬·Ö±ðÊǼ̳ÐThreadÀàÓëʵÏÖRunnable½Ó¿Ú
ͬ²½µÄʵÏÖ·½ÃæÓÐÁ½ÖÖ£¬·Ö±ðÊÇsynchronized,waitÓënotify
57¡¢JSPµÄÄÚÖöÔÏó¼°·½·¨¡£
request±íʾHttpServletRequest¶ÔÏó¡£Ëü°üº¬ÁËÓйØä¯ÀÀÆ÷ÇëÇóµÄÐÅÏ¢£¬²¢ÇÒÌṩÁ˼¸¸öÓÃÓÚ»ñÈ¡cookie, header, ºÍsessionÊý¾ÝµÄÓÐÓõķ½·¨¡£
response±íʾHttpServletResponse¶ÔÏ󣬲¢ÌṩÁ˼¸¸öÓÃÓÚÉèÖÃËÍ»Ø ä¯ÀÀÆ÷µÄÏìÓ¦µÄ·½·¨£¨Èçcookies,Í·ÐÅÏ¢µÈ£©
out¶ÔÏóÊÇjavax.jsp.JspWriterµÄÒ»¸öʵÀý£¬²¢ÌṩÁ˼¸¸ö·½·¨Ê¹ÄãÄÜÓÃÓÚÏòä¯ÀÀÆ÷»ØËÍÊä³ö½á¹û¡£
pageContext±íʾһ¸öjavax.servlet.jsp.PageContext¶ÔÏó¡£ËüÊÇÓÃÓÚ·½±ã´æÈ¡¸÷ÖÖ·¶Î§µÄÃû×ֿռ䡢servletÏà¹ØµÄ¶ÔÏóµÄAPI£¬²¢ÇÒ°ü×°ÁËͨÓõÄservletÏà¹Ø¹¦Äܵķ½·¨¡£
session±íʾһ¸öÇëÇóµÄjavax.servlet.http.HttpSession¶ÔÏó¡£Session¿ÉÒÔ´æÖüÓû§µÄ״̬ÐÅÏ¢
applicaton ±íʾһ¸öjavax.servle.ServletContext¶ÔÏó¡£ÕâÓÐÖúÓÚ²éÕÒÓйØservletÒýÇæºÍservlet»·¾³µÄÐÅÏ¢
config±íʾһ¸öjavax.servlet.ServletConfig¶ÔÏ󡣸öÔÏóÓÃÓÚ´æÈ¡servletʵÀýµÄ³õʼ»¯²ÎÊý¡£
page±íʾ´Ó¸ÃÒ³Ãæ²úÉúµÄÒ»¸öservletʵÀý
58¡¢Ï̵߳Ļù±¾¸ÅÄî¡¢Ï̵߳Ļù±¾×´Ì¬ÒÔ¼°×´Ì¬Ö®¼äµÄ¹ØÏµ
Ïß³ÌÖ¸ÔÚ³ÌÐòÖ´Ðйý³ÌÖУ¬Äܹ»Ö´ÐгÌÐò´úÂëµÄÒ»¸öÖ´Ðе¥Î»£¬Ã¿¸ö³ÌÐòÖÁÉÙ¶¼ÓÐÒ»¸öỊ̈߳¬Ò²¾ÍÊdzÌÐò±¾Éí¡£
JavaÖеÄÏß³ÌÓÐËÄÖÖ״̬·Ö±ðÊÇ£ºÔËÐС¢¾ÍÐ÷¡¢¹ÒÆð¡¢½áÊø¡£
59¡¢JSPµÄ³£ÓÃÖ¸Áî
<%@page language="java" contenType="text/html;charset=gb2312" session="true" buffer="64kb" autoFlush="true" isThreadSafe="true" info="text" errorPage="error.jsp" isErrorPage="true" isELIgnored="true" pageEncoding="gb2312" import="java.sql.*"%>
isErrorPage(ÊÇ·ñÄÜʹÓÃException¶ÔÏó)£¬isELIgnored(ÊÇ·ñºöÂÔ±í´ïʽ)
<%@include file="filename"%>
<%@taglib prefix="c"uri="http://......"%>
60¡¢Ê²Ã´Çé¿öϵ÷ÓÃdoGet()ºÍdoPost()£¿
JspÒ³ÃæÖеÄform±êÇ©ÀïµÄmethodÊôÐÔΪgetʱµ÷ÓÃdoGet()£¬Îªpostʱµ÷ÓÃdoPost()¡£
61¡¢servletµÄÉúÃüÖÜÆÚ
webÈÝÆ÷¼ÓÔØservlet£¬ÉúÃüÖÜÆÚ¿ªÊ¼¡£Í¨¹ýµ÷ÓÃservletµÄinit()·½·¨½øÐÐservletµÄ³õʼ»¯¡£Í¨¹ýµ÷ÓÃservice()·½·¨ÊµÏÖ£¬¸ù¾ÝÇëÇóµÄ²»Í¬µ÷Óò»Í¬µÄdo***()·½·¨¡£½áÊø·þÎñ£¬webÈÝÆ÷µ÷ÓÃservletµÄdestroy()·½·¨¡£
62¡¢ÈçºÎÏÖʵservletµÄµ¥Ïß³Ìģʽ
<%@ page isThreadSafe="false"%>
63¡¢Ò³Ãæ¼ä¶ÔÏ󴫵ݵķ½·¨
request£¬session£¬application£¬cookieµÈ
64¡¢JSPºÍServletÓÐÄÄЩÏàͬµãºÍ²»Í¬µã£¬ËûÃÇÖ®¼äµÄÁªÏµÊÇʲô£¿
JSPÊÇServlet¼¼ÊõµÄÀ©Õ¹£¬±¾ÖÊÉÏÊÇServletµÄ¼òÒ×·½Ê½£¬¸üÇ¿µ÷Ó¦ÓõÄÍâ±í±í´ï¡£JSP±àÒëºóÊÇ"Ààservlet"¡£ServletºÍJSP×îÖ÷ÒªµÄ²»Í¬µãÔÚÓÚ£¬ServletµÄÓ¦ÓÃÂß¼ÊÇÔÚJavaÎļþÖУ¬²¢ÇÒÍêÈ«´Ó±íʾ²ãÖеÄHTMLÀï·ÖÀ뿪À´¡£¶øJSPµÄÇé¿öÊÇJavaºÍHTML¿ÉÒÔ×éºÏ³ÉÒ»¸öÀ©Õ¹ÃûΪ.jspµÄÎļþ¡£JSP²àÖØÓÚÊÓͼ£¬ServletÖ÷ÒªÓÃÓÚ¿ØÖÆÂß¼¡£
65¡¢ËÄÖֻỰ¸ú×Ù¼¼Êõ
»á»°×÷ÓÃÓòServletsJSP Ò³ÃæÃèÊö
page·ñÊÇ´ú±íÓëÒ»¸öÒ³ÃæÏà¹ØµÄ¶ÔÏóºÍÊôÐÔ¡£Ò»¸öÒ³ÃæÓÉÒ»¸ö±àÒëºÃµÄ Java servlet Àࣨ¿ÉÒÔ´øÓÐÈÎºÎµÄ include Ö¸Áµ«ÊÇûÓÐ include ¶¯×÷£©±íʾ¡£Õâ¼È°üÀ¨ servlet ÓÖ°üÀ¨±»±àÒë³É servlet µÄ JSP Ò³Ãæ
requestÊÇÊÇ´ú±íÓë Web ¿Í»§»ú·¢³öµÄÒ»¸öÇëÇóÏà¹ØµÄ¶ÔÏóºÍÊôÐÔ¡£Ò»¸öÇëÇó¿ÉÄÜ¿çÔ½¶à¸öÒ³Ãæ£¬Éæ¼°¶à¸ö Web ×é¼þ£¨ÓÉÓÚ forward Ö¸ÁîºÍ include ¶¯×÷µÄ¹ØÏµ£©
sessionÊÇÊÇ´ú±íÓëÓÃÓÚij¸ö Web ¿Í»§»úµÄÒ»¸öÓû§ÌåÑéÏà¹ØµÄ¶ÔÏóºÍÊôÐÔ¡£Ò»¸ö Web »á»°¿ÉÒÔÒ²¾³£»á¿çÔ½¶à¸ö¿Í»§»úÇëÇó
applicationÊÇÊÇ´ú±íÓëÕû¸ö Web Ó¦ÓóÌÐòÏà¹ØµÄ¶ÔÏóºÍÊôÐÔ¡£ÕâʵÖÊÉÏÊÇ¿çÔ½Õû¸ö Web Ó¦ÓóÌÐò£¬°üÀ¨¶à¸öÒ³Ãæ¡¢ÇëÇóºÍ»á»°µÄÒ»¸öÈ«¾Ö×÷ÓÃÓò
66¡¢Request¶ÔÏóµÄÖ÷Òª·½·¨£º
setAttribute(String name,Object)£ºÉèÖÃÃû×ÖΪnameµÄrequestµÄ²ÎÊýÖµ
getAttribute(String name)£º·µ»ØÓÉnameÖ¸¶¨µÄÊôÐÔÖµ
getAttributeNames()£º·µ»Ørequest¶ÔÏóËùÓÐÊôÐÔµÄÃû×Ö¼¯ºÏ£¬½á¹ûÊÇÒ»¸öö¾ÙµÄʵÀý
getCookies()£º·µ»Ø¿Í»§¶ËµÄËùÓÐCookie¶ÔÏ󣬽á¹ûÊÇÒ»¸öCookieÊý×é
getCharacterEncoding()£º·µ»ØÇëÇóÖеÄ×Ö·û±àÂ뷽ʽ
getContentLength()£º·µ»ØÇëÇóµÄBodyµÄ³¤¶È
getHeader(String name)£º»ñµÃHTTPÐÒ鶨ÒåµÄÎļþÍ·ÐÅÏ¢
getHeaders(String name)£º·µ»ØÖ¸¶¨Ãû×ÖµÄrequest HeaderµÄËùÓÐÖµ£¬½á¹ûÊÇÒ»¸öö¾ÙµÄʵÀý
getHeaderNames()£º·µ»ØËùÒÔrequest HeaderµÄÃû×Ö£¬½á¹ûÊÇÒ»¸öö¾ÙµÄʵÀý
getInputStream()£º·µ»ØÇëÇóµÄÊäÈëÁ÷£¬ÓÃÓÚ»ñµÃÇëÇóÖеÄÊý¾Ý
getMethod()£º»ñµÃ¿Í»§¶ËÏò·þÎñÆ÷¶Ë´«ËÍÊý¾ÝµÄ·½·¨
getParameter(String name)£º»ñµÃ¿Í»§¶Ë´«Ë͸ø·þÎñÆ÷¶ËµÄÓÐnameÖ¸¶¨µÄ²ÎÊýÖµ
getParameterNames()£º»ñµÃ¿Í»§¶Ë´«Ë͸ø·þÎñÆ÷¶ËµÄËùÓвÎÊýµÄÃû×Ö£¬½á¹ûÊÇÒ»¸öö¾ÙµÄʵÀý
getParameterValues(String name)£º»ñµÃÓÐnameÖ¸¶¨µÄ²ÎÊýµÄËùÓÐÖµ
getProtocol()£º»ñÈ¡¿Í»§¶ËÏò·þÎñÆ÷¶Ë´«ËÍÊý¾ÝËùÒÀ¾ÝµÄÐÒéÃû³Æ
getQueryString()£º»ñµÃ²éѯ×Ö·û´®
getRequestURI()£º»ñÈ¡·¢³öÇëÇó×Ö·û´®µÄ¿Í»§¶ËµØÖ·
getRemoteAddr()£º»ñÈ¡¿Í»§¶ËµÄIPµØÖ·
getRemoteHost()£º»ñÈ¡¿Í»§¶ËµÄÃû×Ö
getSession([Boolean create])£º·µ»ØºÍÇëÇóÏà¹ØSession
getServerName()£º»ñÈ¡·þÎñÆ÷µÄÃû×Ö
getServletPath()£º»ñÈ¡¿Í»§¶ËËùÇëÇóµÄ½Å±¾ÎļþµÄ·¾¶
getServerPort()£º»ñÈ¡·þÎñÆ÷µÄ¶Ë¿ÚºÅ
removeAttribute(String name)£ºÉ¾³ýÇëÇóÖеÄÒ»¸öÊôÐÔ
67¡¢J2EEÊǼ¼Êõ»¹ÊÇÆ½Ì¨»¹ÊÇ¿ò¼Ü£¿
J2EE±¾ÉíÊÇÒ»¸ö±ê×¼£¬Ò»¸öΪÆóÒµ·Ö²¼Ê½Ó¦ÓõĿª·¢ÌṩµÄ±ê׼ƽ̨¡£
J2EEÒ²ÊÇÒ»¸ö¿ò¼Ü£¬°üÀ¨JDBC¡¢JNDI¡¢RMI¡¢JMS¡¢EJB¡¢JTAµÈ¼¼Êõ¡£
68¡¢ÎÒÃÇÔÚwebÓ¦Óÿª·¢¹ý³ÌÖо³£Óöµ½Êä³öijÖÖ±àÂëµÄ×Ö·û£¬Èçiso8859-1µÈ£¬ÈçºÎÊä³öÒ»¸öijÖÖ±àÂëµÄ×Ö·û´®£¿
Public String translate (String str) {
String tempStr = "";
try {
tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
tempStr = tempStr.trim();
}
catch (Exception e) {
System.err.println(e.getMessage());
}
return tempStr;
}
69¡¢¼òÊöÂß¼²Ù×÷(&,|,^)ÓëÌõ¼þ²Ù×÷(&&,||)µÄÇø±ð¡£
Çø±ðÖ÷Òª´ðÁ½µã£ºa.Ìõ¼þ²Ù×÷Ö»ÄܲÙ×÷²¼¶ûÐ͵Ä,¶øÂß¼²Ù×÷²»½ö¿ÉÒÔ²Ù×÷²¼¶ûÐÍ,¶øÇÒ¿ÉÒÔ²Ù×÷ÊýÖµÐÍ
b.Âß¼²Ù×÷²»»á²úÉú¶Ì·
70¡¢XMLÎĵµ¶¨ÒåÓм¸ÖÖÐÎʽ£¿ËüÃÇÖ®¼äÓкα¾ÖÊÇø±ð£¿½âÎöXMLÎĵµÓÐÄļ¸ÖÖ·½Ê½£¿
a: Á½ÖÖÐÎʽ dtd schema£¬b: ±¾ÖÊÇø±ð:schema±¾ÉíÊÇxmlµÄ£¬¿ÉÒÔ±»XML½âÎöÆ÷½âÎö(ÕâÒ²ÊÇ´ÓDTDÉÏ·¢Õ¹schemaµÄ¸ù±¾Ä¿µÄ)£¬c:ÓÐDOM,SAX,STAXµÈ
DOM:´¦Àí´óÐÍÎļþʱÆäÐÔÄÜϽµµÄ·Ç³£À÷º¦¡£Õâ¸öÎÊÌâÊÇÓÉDOMµÄÊ÷½á¹¹ËùÔì³ÉµÄ£¬ÕâÖֽṹռÓõÄÄÚ´æ½Ï¶à£¬¶øÇÒDOM±ØÐëÔÚ½âÎöÎļþ֮ǰ°ÑÕû¸öÎĵµ×°ÈëÄÚ´æ,Êʺ϶ÔXMLµÄËæ»ú·ÃÎÊ
SAX:²»ÏÖÓÚDOM,SAXÊÇʼþÇý¶¯Ð͵ÄXML½âÎö·½Ê½¡£Ëü˳Ðò¶ÁÈ¡XMLÎļþ£¬²»ÐèÒªÒ»´ÎÈ«²¿×°ÔØÕû¸öÎļþ¡£µ±Óöµ½ÏñÎļþ¿ªÍ·£¬Îĵµ½áÊø£¬»òÕß±êÇ©¿ªÍ·Óë±êÇ©½áÊøÊ±£¬Ëü»á´¥·¢Ò»¸öʼþ£¬Óû§Í¨¹ýÔÚÆä»Øµ÷ʼþÖÐдÈë´¦Àí´úÂëÀ´´¦ÀíXMLÎļþ£¬Êʺ϶ÔXMLµÄ˳Ðò·ÃÎÊ
STAX:Streaming API for XML (StAX)
71¡¢¼òÊösynchronizedºÍjava.util.concurrent.locks.LockµÄÒìͬ £¿
Ö÷ÒªÏàͬµã£ºLockÄÜÍê³ÉsynchronizedËùʵÏÖµÄËùÓй¦ÄÜ
Ö÷Òª²»Í¬µã£ºLockÓбÈsynchronized¸ü¾«È·µÄÏß³ÌÓïÒåºÍ¸üºÃµÄÐÔÄÜ¡£synchronized»á×Ô¶¯ÊÍ·ÅËø£¬¶øLockÒ»¶¨ÒªÇó³ÌÐòÔ±ÊÖ¹¤ÊÍ·Å£¬²¢ÇÒ±ØÐëÔÚfinally´Ó¾äÖÐÊÍ·Å¡£
72¡¢EJBµÄ½ÇÉ«ºÍÈý¸ö¶ÔÏó
Ò»¸öÍêÕûµÄ»ùÓÚEJBµÄ·Ö²¼Ê½¼ÆËã½á¹¹ÓÉÁù¸ö½ÇÉ«×é³É£¬ÕâÁù¸ö½ÇÉ«¿ÉÒÔÓɲ»Í¬µÄ¿ª·¢ÉÌÌṩ£¬Ã¿¸ö½ÇÉ«Ëù×÷µÄ¹¤×÷±ØÐë×ñÑSun¹«Ë¾ÌṩµÄEJB¹æ·¶£¬ÒÔ±£Ö¤±Ë´ËÖ®¼äµÄ¼æÈÝÐÔ¡£ÕâÁù¸ö½ÇÉ«·Ö±ðÊÇEJB×é¼þ¿ª·¢Õߣ¨Enterprise Bean Provider£© ¡¢Ó¦ÓÃ×éºÏÕߣ¨Application Assembler£©¡¢²¿ÊðÕߣ¨Deployer£©¡¢EJB ·þÎñÆ÷ÌṩÕߣ¨EJB Server Provider£©¡¢EJB ÈÝÆ÷ÌṩÕߣ¨EJB Container Provider£©¡¢ÏµÍ³¹ÜÀíÔ±£¨System Administrator£©
Èý¸ö¶ÔÏóÊÇRemote£¨Local£©½Ó¿Ú¡¢Home£¨LocalHome£©½Ó¿Ú£¬BeanÀà
73¡¢EJBÈÝÆ÷ÌṩµÄ·þÎñ
Ö÷ÒªÌṩÉùÃ÷ÖÜÆÚ¹ÜÀí¡¢´úÂë²úÉú¡¢³ÖÐøÐÔ¹ÜÀí¡¢°²È«¡¢ÊÂÎñ¹ÜÀí¡¢ËøºÍ²¢·¢ÐйÜÀíµÈ·þÎñ¡£
74¡¢EJB¹æ·¶¹æ¶¨EJBÖнûÖ¹µÄ²Ù×÷ÓÐÄÄЩ£¿
1.²»ÄܲÙ×÷Ï̺߳ÍÏß³ÌAPI(Ïß³ÌAPIÖ¸·ÇÏ̶߳ÔÏóµÄ·½·¨Èçnotify,waitµÈ)£¬2.²»ÄܲÙ×÷awt£¬3.²»ÄÜʵÏÖ·þÎñÆ÷¹¦ÄÜ£¬4.²»ÄܶԾ²Ì¬ÊôÉú´æÈ¡£¬5.²»ÄÜʹÓÃIO²Ù×÷Ö±½Ó´æÈ¡Îļþϵͳ£¬6.²»ÄܼÓÔØ±¾µØ¿â.£¬7.²»Äܽ«this×÷Ϊ±äÁ¿ºÍ·µ»Ø£¬8.²»ÄÜÑ»·µ÷Óá£
75¡¢remote½Ó¿ÚºÍhome½Ó¿ÚÖ÷Òª×÷ÓÃ
remote½Ó¿Ú¶¨ÒåÁËÒµÎñ·½·¨£¬ÓÃÓÚEJB¿Í»§¶Ëµ÷ÓÃÒµÎñ·½·¨¡£
home½Ó¿ÚÊÇEJB¹¤³§ÓÃÓÚ´´½¨ºÍÒÆ³ý²éÕÒEJBʵÀý
76¡¢bean ʵÀýµÄÉúÃüÖÜÆÚ
¶ÔÓÚStateless Session Bean¡¢Entity Bean¡¢Message Driven BeanÒ»°ã´æÔÚ»º³å³Ø¹ÜÀí£¬¶ø¶ÔÓÚEntity BeanºÍStatefull Session Bean´æÔÚCache¹ÜÀí£¬Í¨³£°üº¬´´½¨ÊµÀý£¬ÉèÖÃÉÏÏÂÎÄ¡¢´´½¨EJB Object£¨create£©¡¢ÒµÎñ·½·¨µ÷Óá¢removeµÈ¹ý³Ì£¬¶ÔÓÚ´æÔÚ»º³å³Ø¹ÜÀíµÄBean£¬ÔÚcreateÖ®ºóʵÀý²¢²»´ÓÄÚ´æÇå³ý£¬¶øÊDzÉÓûº³å³Øµ÷¶È»úÖÆ²»¶ÏÖØÓÃʵÀý£¬¶ø¶ÔÓÚ´æÔÚCache¹ÜÀíµÄBeanÔòͨ¹ý¼¤»îºÍÈ¥¼¤»î»úÖÆ±£³ÖBeanµÄ״̬²¢ÏÞÖÆÄÚ´æÖÐʵÀýÊýÁ¿¡£
77¡¢EJBµÄ¼¤»î»úÖÆ
ÒÔStateful Session Bean ΪÀý£ºÆäCache´óС¾ö¶¨ÁËÄÚ´æÖпÉÒÔͬʱ´æÔÚµÄBeanʵÀýµÄÊýÁ¿£¬¸ù¾ÝMRU»òNRUËã·¨£¬ÊµÀýÔÚ¼¤»îºÍÈ¥¼¤»î״̬֮¼äÇ¨ÒÆ£¬¼¤»î»úÖÆÊǵ±¿Í»§¶Ëµ÷ÓÃij¸öEJBʵÀýÒµÎñ·½·¨Ê±£¬Èç¹û¶ÔÓ¦EJB Object·¢ÏÖ×Ô¼ºÃ»Óа󶨶ÔÓ¦µÄBeanʵÀýÔò´ÓÆäÈ¥¼¤»îBean´æ´¢ÖУ¨Í¨¹ýÐòÁл¯»úÖÆ´æ´¢ÊµÀý£©»Ø¸´£¨¼¤»î£©´ËʵÀý¡£×´Ì¬±äǨǰ»áµ÷ÓöÔÓ¦µÄejbActiveºÍejbPassivate·½·¨¡£
78¡¢EJBµÄ¼¸ÖÖÀàÐÍ
»á»°£¨Session£©Bean £¬ÊµÌ壨Entity£©Bean ÏûÏ¢Çý¶¯µÄ£¨Message Driven£©Bean
»á»°BeanÓÖ¿É·ÖΪÓÐ״̬£¨Stateful£©ºÍÎÞ״̬£¨Stateless£©Á½ÖÖ
ʵÌåBean¿É·ÖΪBean¹ÜÀíµÄ³ÖÐøÐÔ£¨BMP£©ºÍÈÝÆ÷¹ÜÀíµÄ³ÖÐøÐÔ£¨CMP£©Á½ÖÖ
79¡¢¿Í·þ¶Ëµ÷ÓÃEJB¶ÔÏóµÄ¼¸¸ö»ù±¾²½Öè
ÉèÖÃJNDI·þÎñ¹¤³§ÒÔ¼°JNDI·þÎñµØÖ·ÏµÍ³ÊôÐÔ£¬²éÕÒHome½Ó¿Ú£¬´ÓHome½Ó¿Úµ÷ÓÃCreate·½·¨´´½¨Remote½Ó¿Ú£¬Í¨¹ýRemote½Ó¿Úµ÷ÓÃÆäÒµÎñ·½·¨¡£
80¡¢ÈçºÎ¸øweblogicÖ¸¶¨´óСµÄÄÚ´æ?
ÔÚÆô¶¯WeblogicµÄ½Å±¾ÖУ¨Î»ÓÚËùÔÚDomian¶ÔÓ¦·þÎñÆ÷Ŀ¼ÏµÄstartServerName£©£¬Ôö¼Óset MEM_ARGS=-Xms32m -Xmx200m£¬¿ÉÒÔµ÷Õû×îСÄÚ´æÎª32M£¬×î´ó200M
81¡¢ÈçºÎÉ趨µÄweblogicµÄÈÈÆô¶¯Ä£Ê½(¿ª·¢Ä£Ê½)Óë²úÆ··¢²¼Ä£Ê½?
¿ÉÒÔÔÚ¹ÜÀí¿ØÖÆÌ¨ÖÐÐ޸ĶÔÓ¦·þÎñÆ÷µÄÆô¶¯Ä£Ê½Îª¿ª·¢»ò²úƷģʽ֮һ¡£»òÕßÐ޸ķþÎñµÄÆô¶¯Îļþ»òÕßcommenvÎļþ£¬Ôö¼Óset PRODUCTION_MODE=true¡£
82¡¢ÈçºÎÆô¶¯Ê±²»ÐèÊäÈëÓû§ÃûÓëÃÜÂë?
Ð޸ķþÎñÆô¶¯Îļþ£¬Ôö¼Ó WLS_USERºÍWLS_PWÏî¡£Ò²¿ÉÒÔÔÚboot.propertiesÎļþÖÐÔö¼Ó¼ÓÃܹýµÄÓû§ÃûºÍÃÜÂë.
83¡¢ÔÚweblogic¹ÜÀíÖÆÌ¨ÖжÔÒ»¸öÓ¦ÓÃÓò(»òÕß˵ÊÇÒ»¸öÍøÕ¾,Domain)½øÐÐjms¼°ejb»òÁ¬½Ó³ØµÈÏà¹ØÐÅÏ¢½øÐÐÅäÖúó,ʵ¼Ê±£´æÔÚʲôÎļþÖÐ?
±£´æÔÚ´ËDomainµÄconfig.xmlÎļþÖУ¬ËüÊÇ·þÎñÆ÷µÄºËÐÄÅäÖÃÎļþ¡£
84¡¢ËµËµweblogicÖÐÒ»¸öDomainµÄȱʡĿ¼½á¹¹?±ÈÈçÒª½«Ò»¸ö¼òµ¥µÄhelloWorld.jsp·ÅÈëºÎĿ¼ÏÂ,È»µÄÔÚä¯ÀÀÆ÷ÉϾͿɴòÈëhttp://Ö÷»ú:¶Ë¿ÚºÅ//helloword.jsp¾Í¿ÉÒÔ¿´µ½ÔËÐнá¹ûÁË? ÓÖ±ÈÈçÕâÆäÖÐÓõ½ÁËÒ»¸ö×Ô¼ºÐ´µÄjavaBean¸ÃÈçºÎ°ì?
DomainĿ¼·þÎñÆ÷Ŀ¼applications£¬½«Ó¦ÓÃĿ¼·ÅÔÚ´ËĿ¼Ï½«¿ÉÒÔ×÷ΪӦÓ÷ÃÎÊ£¬Èç¹ûÊÇWebÓ¦Óã¬Ó¦ÓÃĿ¼ÐèÒªÂú×ãWebÓ¦ÓÃĿ¼ҪÇó£¬jspÎļþ¿ÉÒÔÖ±½Ó·ÅÔÚÓ¦ÓÃĿ¼ÖУ¬JavabeanÐèÒª·ÅÔÚÓ¦ÓÃĿ¼µÄWEB-INFĿ¼µÄclassesĿ¼ÖУ¬ÉèÖ÷þÎñÆ÷µÄȱʡӦÓý«¿ÉÒÔʵÏÖÔÚä¯ÀÀÆ÷ÉÏÎÞÐèÊäÈëÓ¦ÓÃÃû¡£
85¡¢ÔÚweblogicÖз¢²¼ejbÐèÉæ¼°µ½ÄÄЩÅäÖÃÎļþ
²»Í¬ÀàÐ͵ÄEJBÉæ¼°µÄÅäÖÃÎļþ²»Í¬£¬¶¼Éæ¼°µ½µÄÅäÖÃÎļþ°üÀ¨ejb-jar.xml,weblogic-ejb-jar.xmlCMPʵÌåBeanÒ»°ã»¹ÐèÒªweblogic-cmp-rdbms-jar.xml
86¡¢ÈçºÎÔÚweblogicÖнøÐÐsslÅäÖÃÓë¿Í»§¶ËµÄÈÏÖ¤ÅäÖûò˵˵j2ee(±ê×¼)½øÐÐsslµÄÅäÖÃ
ȱʡ°²×°ÖÐʹÓÃDemoIdentity.jksºÍDemoTrust.jks KeyStoreʵÏÖSSL£¬ÐèÒªÅäÖ÷þÎñÆ÷ʹÓÃEnable SSL£¬ÅäÖÃÆä¶Ë¿Ú£¬ÔÚ²úƷģʽÏÂÐèÒª´ÓCA»ñȡ˽ÓÐÃÜÔ¿ºÍÊý×ÖÖ¤Ê飬´´½¨identityºÍtrust keystore£¬×°ÔØ»ñµÃµÄÃÜÔ¿ºÍÊý×ÖÖ¤Êé¡£¿ÉÒÔÅäÖôËSSLÁ¬½ÓÊǵ¥Ïò»¹ÊÇË«ÏòµÄ¡£
87¡¢ÈçºÎ²é¿´ÔÚweblogicÖÐÒѾ·¢²¼µÄEJB?
¿ÉÒÔʹÓùÜÀí¿ØÖÆÌ¨£¬ÔÚËüµÄDeploymentÖпÉÒԲ鿴ËùÓÐÒÑ·¢²¼µÄEJB
88¡¢CORBAÊÇʲô?ÓÃ;ÊÇʲô?
CORBA ±ê×¼Êǹ«¹²¶ÔÏóÇëÇó´úÀí½á¹¹(Common Object Request Broker Architecture)£¬ÓɶÔÏó¹ÜÀí×éÖ¯ (Object Management Group£¬ËõдΪ OMG)±ê×¼»¯¡£ËüµÄ×é³ÉÊǽӿڶ¨ÒåÓïÑÔ(IDL), ÓïÑÔ°ó¶¨(binding:Ò²ÒëΪÁª±à)ºÍÔÊÐíÓ¦ÓóÌÐò¼ä»¥²Ù×÷µÄÐÒé¡£ ÆäÄ¿µÄΪ£ºÓò»Í¬µÄ³ÌÐòÉè¼ÆÓïÑÔÊéдÔÚ²»Í¬µÄ½ø³ÌÖÐÔËÐУ¬Îª²»Í¬µÄ²Ù×÷ϵͳ¿ª·¢¡£
89¡¢ËµËµÄãËùÊìϤ»òÌý˵¹ýµÄj2eeÖеļ¸ÖÖ³£ÓÃģʽ?¼°¶ÔÉè¼ÆÄ£Ê½µÄһЩ¿´·¨
Session Facade Pattern£ºÊ¹ÓÃSessionBean·ÃÎÊEntityBean
Message Facade Pattern£ºÊµÏÖÒì²½µ÷ÓÃ
EJB Command Pattern£ºÊ¹ÓÃCommand JavaBeansÈ¡´úSessionBean£¬ÊµÏÖÇáÁ¿¼¶·ÃÎÊ
Data Transfer Object Factory£ºÍ¨¹ýDTO Factory¼ò»¯EntityBeanÊý¾ÝÌá¹©ÌØÐÔ
Generic Attribute Access£ºÍ¨¹ýAttibuteAccess½Ó¿Ú¼ò»¯EntityBeanÊý¾ÝÌá¹©ÌØÐÔ
Business Interface£ºÍ¨¹ýÔ¶³Ì£¨±¾µØ£©½Ó¿ÚºÍBeanÀàʵÏÖÏàͬ½Ó¿Ú¹æ·¶ÒµÎñÂß¼Ò»ÖÂÐÔ
£Å£Ê£Â¼Ü¹¹µÄÉè¼ÆºÃ»µ½«Ö±½ÓÓ°ÏìϵͳµÄÐÔÄÜ¡¢¿ÉÀ©Õ¹ÐÔ¡¢¿Éά»¤ÐÔ¡¢×é¼þ¿ÉÖØÓÃÐÔ¼°¿ª·¢Ð§ÂÊ¡£ÏîĿԽ¸´ÔÓ£¬ÏîÄ¿¶ÓÎéÔ½ÅÓ´óÔòÔ½ÄÜÌåÏÖÁ¼ºÃÉè¼ÆµÄÖØÒªÐÔ¡£
90¡¢ËµËµÔÚweblogicÖпª·¢ÏûÏ¢BeanʱµÄpersistentÓënon-persistenµÄ²î±ð
persistent·½Ê½µÄMDB¿ÉÒÔ±£Ö¤ÏûÏ¢´«µÝµÄ¿É¿¿ÐÔ,Ò²¾ÍÊÇÈç¹ûEJBÈÝÆ÷³öÏÖÎÊÌâ¶øJMS·þÎñÆ÷ÒÀÈ»»á½«ÏûÏ¢ÔÚ´ËMDB¿ÉÓõÄʱºò·¢Ë͹ýÀ´£¬¶ønon£persistent·½Ê½µÄÏûÏ¢½«±»¶ªÆú¡£
91¡¢ServletÖ´ÐÐʱһ°ãʵÏÖÄö·½·¨£¿
public void init(ServletConfig config)
public ServletConfig getServletConfig()
public String getServletInfo()
public void service(ServletRequest request,ServletResponse response)
public void destroy()
92¡¢j2ee³£ÓõÄÉè¼ÆÄ£Ê½£¿ËµÃ÷¹¤³§Ä£Ê½¡£
JavaÖеÄ23ÖÖÉè¼ÆÄ£Ê½£º
Factory£¨¹¤³§Ä£Ê½£©£¬ Builder£¨½¨Ôìģʽ£©£¬ Factory Method£¨¹¤³§·½·¨Ä£Ê½£©£¬
Prototype£¨ÔʼģÐÍģʽ£©£¬Singleton£¨µ¥Àýģʽ£©£¬ Facade£¨ÃÅÃæÄ£Ê½£©£¬
Adapter£¨ÊÊÅäÆ÷ģʽ£©£¬ Bridge£¨ÇÅÁºÄ£Ê½£©£¬ Composite£¨ºÏ³Éģʽ£©£¬
Decorator£¨×°ÊÎģʽ£©£¬ Flyweight£¨ÏíԪģʽ£©£¬ Proxy£¨´úÀíģʽ£©£¬
Command£¨ÃüÁîģʽ£©£¬ Interpreter£¨½âÊÍÆ÷ģʽ£©£¬ Visitor£¨·ÃÎÊÕßģʽ£©£¬
Iterator£¨µü´ú×Óģʽ£©£¬ Mediator£¨µ÷Í£Õßģʽ£©£¬ Memento£¨±¸Íü¼ģʽ£©£¬
Observer£¨¹Û²ìÕßģʽ£©£¬ State£¨×´Ì¬Ä£Ê½£©£¬ Strategy£¨²ßÂÔģʽ£©£¬
Template Method£¨Ä£°å·½·¨Ä£Ê½£©£¬ Chain Of Responsibleity£¨ÔðÈÎÁ´Ä£Ê½£©
¹¤³§Ä£Ê½£º¹¤³§Ä£Ê½ÊÇÒ»ÖÖ¾³£±»Ê¹Óõ½µÄģʽ£¬¸ù¾Ý¹¤³§Ä£Ê½ÊµÏÖµÄÀà¿ÉÒÔ¸ù¾ÝÌṩµÄÊý¾ÝÉú³ÉÒ»×éÀàÖÐijһ¸öÀàµÄʵÀý£¬Í¨³£ÕâÒ»×éÀàÓÐÒ»¸ö¹«¹²µÄ³éÏó¸¸ÀಢÇÒʵÏÖÁËÏàͬµÄ·½·¨£¬µ«ÊÇÕâЩ·½·¨Õë¶Ô²»Í¬µÄÊý¾Ý½øÐÐÁ˲»Í¬µÄ²Ù×÷¡£Ê×ÏÈÐèÒª¶¨ÒåÒ»¸ö»ùÀ࣬¸ÃÀàµÄ×ÓÀàͨ¹ý²»Í¬µÄ·½·¨ÊµÏÖÁË»ùÀàÖеķ½·¨¡£È»ºóÐèÒª¶¨ÒåÒ»¸ö¹¤³§À࣬¹¤³§Àà¿ÉÒÔ¸ù¾ÝÌõ¼þÉú³É²»Í¬µÄ×ÓÀàʵÀý¡£µ±µÃµ½×ÓÀàµÄʵÀýºó£¬¿ª·¢ÈËÔ±¿ÉÒÔµ÷ÓûùÀàÖеķ½·¨¶ø²»±Ø¿¼Âǵ½µ×·µ»ØµÄÊÇÄÄÒ»¸ö×ÓÀàµÄʵÀý¡£
93¡¢EJBÐèÖ±½ÓʵÏÖËüµÄÒµÎñ½Ó¿Ú»òHome½Ó¿ÚÂð£¬Çë¼òÊöÀíÓÉ¡£
Ô¶³Ì½Ó¿ÚºÍHome½Ó¿Ú²»ÐèÒªÖ±½ÓʵÏÖ£¬ËûÃǵÄʵÏÖ´úÂëÊÇÓÉ·þÎñÆ÷²úÉúµÄ£¬³ÌÐòÔËÐÐÖжÔӦʵÏÖÀà»á×÷Ϊ¶ÔÓ¦½Ó¿ÚÀàÐ͵ÄʵÀý±»Ê¹Óá£
94¡¢ÅÅÐò¶¼ÓÐÄļ¸ÖÖ·½·¨£¿ÇëÁо١£ÓÃJAVAʵÏÖÒ»¸ö¿ìËÙÅÅÐò¡£
ÅÅÐòµÄ·½·¨ÓУº²åÈëÅÅÐò£¨Ö±½Ó²åÈëÅÅÐò¡¢Ï£¶ûÅÅÐò£©£¬½»»»ÅÅÐò£¨Ã°ÅÝÅÅÐò¡¢¿ìËÙÅÅÐò£©£¬Ñ¡ÔñÅÅÐò£¨Ö±½ÓÑ¡ÔñÅÅÐò¡¢¶ÑÅÅÐò£©£¬¹é²¢ÅÅÐò£¬·ÖÅäÅÅÐò£¨ÏäÅÅÐò¡¢»ùÊýÅÅÐò£©
¿ìËÙÅÅÐòµÄα´úÂë¡£
/ /ʹÓÿìËÙÅÅÐò·½·¨¶Ôa[ 0 :n- 1 ]ÅÅÐò
´Óa[ 0 :n- 1 ]ÖÐÑ¡ÔñÒ»¸öÔªËØ×÷Ϊm i d d l e£¬¸ÃÔªËØÎªÖ§µã
°ÑÓàϵÄÔªËØ·Ö¸îΪÁ½¶Îleft ºÍr i g h t£¬Ê¹µÃl e f tÖеÄÔªËØ¶¼Ð¡ÓÚµÈÓÚÖ§µã£¬¶øright ÖеÄÔªËØ¶¼´óÓÚµÈÓÚÖ§µã
µÝ¹éµØÊ¹ÓÿìËÙÅÅÐò·½·¨¶Ôleft ½øÐÐÅÅÐò
µÝ¹éµØÊ¹ÓÿìËÙÅÅÐò·½·¨¶Ôright ½øÐÐÅÅÐò
ËùµÃ½á¹ûΪl e f t + m i d d l e + r i g h t
95¡¢Çë¶ÔÒÔÏÂÔÚJ2EEÖг£ÓõÄÃû´Ê½øÐнâÊÍ(»ò¼òµ¥ÃèÊö)
webÈÝÆ÷£º¸ø´¦ÓÚÆäÖеÄÓ¦ÓóÌÐò×é¼þ£¨JSP£¬SERVLET£©Ìṩһ¸ö»·¾³£¬Ê¹JSP,SERVLETÖ±½Ó¸üÈÝÆ÷ÖеĻ·¾³±äÁ¿½Ó¿Ú½»»¥£¬²»±Ø¹Ø×¢ÆäËüϵͳÎÊÌâ¡£Ö÷ÒªÓÐWEB·þÎñÆ÷À´ÊµÏÖ¡£ÀýÈ磺TOMCAT,WEBLOGIC,WEBSPHEREµÈ¡£¸ÃÈÝÆ÷ÌṩµÄ½Ó¿ÚÑϸñ×ñÊØJ2EE¹æ·¶ÖеÄWEB APPLICATION ±ê×¼¡£ÎÒÃǰÑ×ñÊØÒÔÉϱê×¼µÄWEB·þÎñÆ÷¾Í½Ð×öJ2EEÖеÄWEBÈÝÆ÷¡£
EJBÈÝÆ÷£ºEnterprise java bean ÈÝÆ÷¡£¸ü¾ßÓÐÐÐÒµÁìÓòÌØÉ«¡£ËûÌṩ¸øÔËÐÐÔÚÆäÖеÄ×é¼þEJB¸÷ÖÖ¹ÜÀí¹¦ÄÜ¡£Ö»ÒªÂú×ãJ2EE¹æ·¶µÄEJB·ÅÈë¸ÃÈÝÆ÷£¬ÂíÉϾͻᱻÈÝÆ÷½øÐиßЧÂʵĹÜÀí¡£²¢ÇÒ¿ÉÒÔͨ¹ýÏֳɵĽӿÚÀ´»ñµÃϵͳ¼¶±ðµÄ·þÎñ¡£ÀýÈçÓʼþ·þÎñ¡¢ÊÂÎñ¹ÜÀí¡£
JNDI£º£¨Java Naming & Directory Interface£©JAVAÃüÃûĿ¼·þÎñ¡£Ö÷ÒªÌṩµÄ¹¦ÄÜÊÇ£ºÌṩһ¸öĿ¼ϵͳ£¬ÈÃÆäËü¸÷µØµÄÓ¦ÓóÌÐòÔÚÆäÉÏÃæÁôÏÂ×Ô¼ºµÄË÷Òý£¬´Ó¶øÂú×ã¿ìËÙ²éÕҺͶ¨Î»·Ö²¼Ê½Ó¦ÓóÌÐòµÄ¹¦ÄÜ¡£
JMS£º£¨Java Message Service£©JAVAÏûÏ¢·þÎñ¡£Ö÷ҪʵÏÖ¸÷¸öÓ¦ÓóÌÐòÖ®¼äµÄͨѶ¡£°üÀ¨µã¶ÔµãºÍ¹ã²¥¡£
JTA£º£¨Java Transaction API£©JAVAÊÂÎñ·þÎñ¡£Ìṩ¸÷ÖÖ·Ö²¼Ê½ÊÂÎñ·þÎñ¡£Ó¦ÓóÌÐòÖ»Ðèµ÷ÓÃÆäÌṩµÄ½Ó¿Ú¼´¿É¡£
JAF£º£¨Java Action FrameWork£©JAVA°²È«ÈÏÖ¤¿ò¼Ü¡£ÌṩһЩ°²È«¿ØÖÆ·½ÃæµÄ¿ò¼Ü¡£Èÿª·¢Õßͨ¹ý¸÷ÖÖ²¿ÊðºÍ×Ô¶¨ÒåʵÏÖ×Ô¼ºµÄ¸öÐÔ°²È«¿ØÖƲßÂÔ¡£
RMI/IIOP:£¨Remote Method Invocation /internet¶ÔÏóÇëÇóÖнéÐÒ飩ËûÃÇÖ÷ÒªÓÃÓÚͨ¹ýÔ¶³Ìµ÷Ó÷þÎñ¡£ÀýÈ磬Զ³ÌÓÐһ̨¼ÆËã»úÉÏÔËÐÐÒ»¸ö³ÌÐò£¬ËüÌṩ¹ÉƱ·ÖÎö·þÎñ£¬ÎÒÃÇ¿ÉÒÔÔÚ±¾µØ¼ÆËã»úÉÏʵÏÖ¶ÔÆäÖ±½Óµ÷Óᣵ±È»ÕâÊÇҪͨ¹ýÒ»¶¨µÄ¹æ·¶²ÅÄÜÔÚÒì¹¹µÄϵͳ֮¼ä½øÐÐͨÐÅ¡£RMIÊÇJAVAÌØÓеġ£
96¡¢JAVAÓïÑÔÈçºÎ½øÐÐÒì³£´¦Àí£¬¹Ø¼ü×Ö£ºthrows,throw,try,catch,finally·Ö±ð´ú±íʲôÒâÒ壿ÔÚtry¿éÖпÉÒÔÅ׳öÒì³£Âð£¿
Javaͨ¹ýÃæÏò¶ÔÏóµÄ·½·¨½øÐÐÒì³£´¦Àí£¬°Ñ¸÷ÖÖ²»Í¬µÄÒì³£½øÐзÖÀ࣬²¢ÌṩÁËÁ¼ºÃµÄ½Ó¿Ú¡£ÔÚJavaÖУ¬Ã¿¸öÒì³£¶¼ÊÇÒ»¸ö¶ÔÏó£¬ËüÊÇThrowableÀà»òÆäËü×ÓÀàµÄʵÀý¡£µ±Ò»¸ö·½·¨³öÏÖÒì³£ºó±ãÅ׳öÒ»¸öÒì³£¶ÔÏ󣬸öÔÏóÖаüº¬ÓÐÒì³£ÐÅÏ¢£¬µ÷ÓÃÕâ¸ö¶ÔÏóµÄ·½·¨¿ÉÒÔ²¶»ñµ½Õâ¸öÒì³£²¢½øÐд¦Àí¡£JavaµÄÒì³£´¦ÀíÊÇͨ¹ý5¸ö¹Ø¼ü´ÊÀ´ÊµÏֵģºtry¡¢catch¡¢throw¡¢throwsºÍfinally¡£Ò»°ãÇé¿öÏÂÊÇÓÃtryÀ´Ö´ÐÐÒ»¶Î³ÌÐò£¬Èç¹û³öÏÖÒì³££¬ÏµÍ³»áÅ׳ö£¨throws£©Ò»¸öÒì³££¬ÕâʱºòÄã¿ÉÒÔͨ¹ýËüµÄÀàÐÍÀ´²¶×½£¨catch£©Ëü£¬»ò×îºó£¨finally£©ÓÉȱʡ´¦ÀíÆ÷À´´¦Àí¡£
ÓÃtryÀ´Ö¸¶¨Ò»¿éÔ¤·ÀËùÓÐ"Òì³£"µÄ³ÌÐò¡£½ô¸úÔÚtry³ÌÐòºóÃæ£¬Ó¦°üº¬Ò»¸öcatch×Ó¾äÀ´Ö¸¶¨ÄãÏëÒª²¶×½µÄ"Òì³£"µÄÀàÐÍ¡£
throwÓï¾äÓÃÀ´Ã÷È·µØÅ׳öÒ»¸ö"Òì³£"¡£
throwsÓÃÀ´±êÃ÷Ò»¸ö³ÉÔ±º¯Êý¿ÉÄÜÅ׳öµÄ¸÷ÖÖ"Òì³£"¡£
FinallyΪȷ±£Ò»¶Î´úÂë²»¹Ü·¢Éúʲô"Òì³£"¶¼±»Ö´ÐÐÒ»¶Î´úÂë¡£
¿ÉÒÔÔÚÒ»¸ö³ÉÔ±º¯Êýµ÷ÓõÄÍâÃæÐ´Ò»¸ötryÓï¾ä£¬ÔÚÕâ¸ö³ÉÔ±º¯ÊýÄÚ²¿Ð´ÁíÒ»¸ötryÓï¾ä±£»¤ÆäËû´úÂ롣ÿµ±Óöµ½Ò»¸ötryÓï¾ä£¬"Òì³£"µÄ¿ò¼Ü¾Í·Åµ½¶ÑÕ»ÉÏÃæ£¬Ö±µ½ËùÓеÄtryÓï¾ä¶¼Íê³É¡£Èç¹ûÏÂÒ»¼¶µÄtryÓï¾äûÓжÔijÖÖ"Òì³£"½øÐд¦Àí£¬¶ÑÕ»¾Í»áÕ¹¿ª£¬Ö±µ½Óöµ½Óд¦ÀíÕâÖÖ"Òì³£"µÄtryÓï¾ä¡£
97¡¢Ò»¸ö".java"Ô´ÎļþÖÐÊÇ·ñ¿ÉÒÔ°üÀ¨¶à¸öÀࣨ²»ÊÇÄÚ²¿Àࣩ£¿ÓÐʲôÏÞÖÆ£¿
¿ÉÒÔ¡£±ØÐëÖ»ÓÐÒ»¸öÀàÃûÓëÎļþÃûÏàͬ¡£
98¡¢MVCµÄ¸÷¸ö²¿·Ö¶¼ÓÐÄÇЩ¼¼ÊõÀ´ÊµÏÖ?ÈçºÎʵÏÖ?
MVCÊÇModel£View£ControllerµÄ¼òд¡£"Model" ´ú±íµÄÊÇÓ¦ÓõÄÒµÎñÂß¼£¨Í¨¹ýJavaBean£¬EJB×é¼þʵÏÖ£©£¬ "View" ÊÇÓ¦ÓõıíÊ¾Ãæ£¨ÓÉJSPÒ³Ãæ²úÉú£©£¬"Controller" ÊÇÌṩӦÓõĴ¦Àí¹ý³Ì¿ØÖÆ£¨Ò»°ãÊÇÒ»¸öServlet£©£¬Í¨¹ýÕâÖÖÉè¼ÆÄ£ÐͰÑÓ¦ÓÃÂß¼£¬´¦Àí¹ý³ÌºÍÏÔʾÂß¼·Ö³É²»Í¬µÄ×é¼þʵÏÖ¡£ÕâЩ×é¼þ¿ÉÒÔ½øÐн»»¥ºÍÖØÓá£
99¡¢javaÖÐÓм¸ÖÖ·½·¨¿ÉÒÔʵÏÖÒ»¸öỊ̈߳¿ÓÃʲô¹Ø¼ü×ÖÐÞÊÎͬ²½·½·¨? stop()ºÍsuspend()·½·¨ÎªºÎ²»ÍƼöʹÓã¿
ÓÐÁ½ÖÖʵÏÖ·½·¨£¬·Ö±ðÊǼ̳ÐThreadÀàÓëʵÏÖRunnable½Ó¿Ú
ÓÃsynchronized¹Ø¼ü×ÖÐÞÊÎͬ²½·½·¨
·´¶ÔʹÓÃstop()£¬ÊÇÒòΪËü²»°²È«¡£Ëü»á½â³ýÓÉÏ̻߳ñÈ¡µÄËùÓÐËø¶¨£¬¶øÇÒÈç¹û¶ÔÏó´¦ÓÚÒ»ÖÖ²»Á¬¹á״̬£¬ÄÇôÆäËûÏß³ÌÄÜÔÚÄÇÖÖ״̬ϼì²éºÍÐÞ¸ÄËüÃÇ¡£½á¹ûºÜÄѼì²é³öÕæÕýµÄÎÊÌâËùÔÚ¡£suspend()·½·¨ÈÝÒ×·¢ÉúËÀËø¡£µ÷ÓÃsuspend()µÄʱºò£¬Ä¿±êÏ̻߳áÍ£ÏÂÀ´£¬µ«È´ÈÔÈ»³ÖÓÐÔÚÕâ֮ǰ»ñµÃµÄËø¶¨¡£´Ëʱ£¬ÆäËûÈκÎÏ̶߳¼²»ÄÜ·ÃÎÊËø¶¨µÄ×ÊÔ´£¬³ý·Ç±»"¹ÒÆð"µÄÏָ̻߳´ÔËÐС£¶ÔÈκÎÏß³ÌÀ´Ëµ£¬Èç¹ûËüÃÇÏë»Ö¸´Ä¿±êỊ̈߳¬Í¬Ê±ÓÖÊÔͼʹÓÃÈκÎÒ»¸öËø¶¨µÄ×ÊÔ´£¬¾Í»áÔì³ÉËÀËø¡£ËùÒÔ²»Ó¦¸ÃʹÓÃsuspend()£¬¶øÓ¦ÔÚ×Ô¼ºµÄThreadÀàÖÐÖÃÈëÒ»¸ö±êÖ¾£¬Ö¸³öÏß³ÌÓ¦¸Ã»î¶¯»¹ÊÇ¹ÒÆð¡£Èô±êÖ¾Ö¸³öÏß³ÌÓ¦¸Ã¹ÒÆð£¬±ãÓÃwait()ÃüÆä½øÈëµÈ´ý״̬¡£Èô±êÖ¾Ö¸³öÏß³ÌÓ¦µ±»Ö¸´£¬ÔòÓÃÒ»¸önotify()ÖØÐÂÆô¶¯Ï̡߳£
100¡¢javaÖÐÓм¸ÖÖÀàÐ͵ÄÁ÷£¿JDKΪÿÖÖÀàÐ͵ÄÁ÷ÌṩÁËһЩ³éÏóÀàÒÔ¹©¼Ì³Ð£¬Çë˵³öËûÃÇ·Ö±ðÊÇÄÄЩÀࣿ
×Ö½ÚÁ÷£¬×Ö·ûÁ÷¡£×Ö½ÚÁ÷¼Ì³ÐÓÚInputStream OutputStream£¬×Ö·ûÁ÷¼Ì³ÐÓÚInputStreamReader OutputStreamWriter¡£ÔÚjava.io°üÖл¹ÓÐÐí¶àÆäËûµÄÁ÷£¬Ö÷ÒªÊÇΪÁËÌá¸ßÐÔÄܺÍʹÓ÷½±ã¡£
101¡¢javaÖÐ»á´æÔÚÄÚ´æÐ¹Â©Âð£¬Çë¼òµ¥ÃèÊö¡£
»á¡£È磺int i,i2; return (i-i2); //when iΪ×ã¹»´óµÄÕýÊý,i2Ϊ×ã¹»´óµÄ¸ºÊý¡£½á¹û»áÔì³ÉÒç룬µ¼Ö´íÎó¡£
102¡¢javaÖÐʵÏÖ¶à̬µÄ»úÖÆÊÇʲô£¿
·½·¨µÄÖØÐ´OverridingºÍÖØÔØOverloadingÊÇJava¶à̬ÐԵIJ»Í¬±íÏÖ¡£ÖØÐ´OverridingÊǸ¸ÀàÓë×ÓÀàÖ®¼ä¶à̬ÐÔµÄÒ»ÖÖ±íÏÖ£¬ÖØÔØOverloadingÊÇÒ»¸öÀàÖжà̬ÐÔµÄÒ»ÖÖ±íÏÖ¡£
103¡¢À¬»ø»ØÊÕÆ÷µÄ»ù±¾ÔÀíÊÇʲô£¿À¬»ø»ØÊÕÆ÷¿ÉÒÔÂíÉÏ»ØÊÕÄÚ´æÂð£¿ÓÐʲô°ì·¨Ö÷¶¯Í¨ÖªÐéÄâ»ú½øÐÐÀ¬»ø»ØÊÕ£¿
¶ÔÓÚGCÀ´Ëµ£¬µ±³ÌÐòÔ±´´½¨¶ÔÏóʱ£¬GC¾Í¿ªÊ¼¼à¿ØÕâ¸ö¶ÔÏóµÄµØÖ·¡¢´óСÒÔ¼°Ê¹ÓÃÇé¿ö¡£Í¨³££¬GC²ÉÓÃÓÐÏòͼµÄ·½Ê½¼Ç¼ºÍ¹ÜÀí¶Ñ(heap)ÖеÄËùÓжÔÏó¡£Í¨¹ýÕâÖÖ·½Ê½È·¶¨ÄÄЩ¶ÔÏóÊÇ"¿É´ïµÄ"£¬ÄÄЩ¶ÔÏóÊÇ"²»¿É´ïµÄ"¡£µ±GCÈ·¶¨Ò»Ð©¶ÔÏóΪ"²»¿É´ï"ʱ£¬GC¾ÍÓÐÔðÈλØÊÕÕâЩÄÚ´æ¿Õ¼ä¡£¿ÉÒÔ¡£³ÌÐòÔ±¿ÉÒÔÊÖ¶¯Ö´ÐÐSystem.gc()£¬Í¨ÖªGCÔËÐУ¬µ«ÊÇJavaÓïÑԹ淶²¢²»±£Ö¤GCÒ»¶¨»áÖ´ÐС£
104¡¢¾²Ì¬±äÁ¿ºÍʵÀý±äÁ¿µÄÇø±ð£¿
static i = 10; //³£Á¿
class A a; a.i =10;//¿É±ä
105¡¢Ê²Ã´ÊÇjavaÐòÁл¯£¬ÈçºÎʵÏÖjavaÐòÁл¯£¿
ÐòÁл¯¾ÍÊÇÒ»ÖÖÓÃÀ´´¦Àí¶ÔÏóÁ÷µÄ»úÖÆ£¬Ëùν¶ÔÏóÁ÷Ò²¾ÍÊǽ«¶ÔÏóµÄÄÚÈݽøÐÐÁ÷»¯¡£¿ÉÒÔ¶ÔÁ÷»¯ºóµÄ¶ÔÏó½øÐжÁд²Ù×÷£¬Ò²¿É½«Á÷»¯ºóµÄ¶ÔÏó´«ÊäÓÚÍøÂçÖ®¼ä¡£ÐòÁл¯ÊÇΪÁ˽â¾öÔÚ¶Ô¶ÔÏóÁ÷½øÐжÁд²Ù×÷ʱËùÒý·¢µÄÎÊÌâ¡£
ÐòÁл¯µÄʵÏÖ£º½«ÐèÒª±»ÐòÁл¯µÄÀàʵÏÖSerializable½Ó¿Ú£¬¸Ã½Ó¿ÚûÓÐÐèҪʵÏֵķ½·¨£¬implements SerializableÖ»ÊÇΪÁ˱ê×¢¸Ã¶ÔÏóÊǿɱ»ÐòÁл¯µÄ£¬È»ºóʹÓÃÒ»¸öÊä³öÁ÷(È磺FileOutputStream)À´¹¹ÔìÒ»¸öObjectOutputStream(¶ÔÏóÁ÷)¶ÔÏ󣬽Ó×Å£¬Ê¹ÓÃObjectOutputStream¶ÔÏóµÄwriteObject(Object obj)·½·¨¾Í¿ÉÒÔ½«²ÎÊýΪobjµÄ¶ÔÏóд³ö(¼´±£´æÆä״̬)£¬Òª»Ö¸´µÄ»°ÔòÓÃÊäÈëÁ÷¡£
106¡¢ÊÇ·ñ¿ÉÒÔ´ÓÒ»¸östatic·½·¨ÄÚ²¿·¢³ö¶Ô·Çstatic·½·¨µÄµ÷Óã¿
²»¿ÉÒÔ,Èç¹ûÆäÖаüº¬¶ÔÏóµÄmethod()£»²»Äܱ£Ö¤¶ÔÏó³õʼ»¯.
107¡¢Ð´clone()·½·¨Ê±£¬Í¨³£¶¼ÓÐÒ»ÐдúÂ룬ÊÇʲô£¿
Clone ÓÐȱʡÐÐΪ£¬super.clone();Ëû¸ºÔð²úÉúÕýÈ·´óСµÄ¿Õ¼ä£¬²¢Öðλ¸´ÖÆ¡£
108¡¢ÔÚJAVAÖУ¬ÈçºÎÌø³öµ±Ç°µÄ¶àÖØÇ¶Ì×Ñ»·£¿
ÓÃbreak; return ·½·¨¡£
109¡¢List¡¢Map¡¢SetÈý¸ö½Ó¿Ú£¬´æÈ¡ÔªËØÊ±£¬¸÷ÓÐÊ²Ã´ÌØµã£¿
List ÒÔÌØ¶¨´ÎÐòÀ´³ÖÓÐÔªËØ£¬¿ÉÓÐÖØ¸´ÔªËØ¡£Set ÎÞ·¨ÓµÓÐÖØ¸´ÔªËØ,ÄÚ²¿ÅÅÐò¡£Map ±£´ækey-valueÖµ£¬value¿É¶àÖµ¡£
110¡¢J2EEÊÇʲô£¿
J2EEÊÇSun¹«Ë¾Ìá³öµÄ¶à²ã(multi-diered),·Ö²¼Ê½(distributed),»ùÓÚ×é¼þ(component-base)µÄÆóÒµ¼¶Ó¦ÓÃÄ£ÐÍ(enterpriese application model).ÔÚÕâÑùµÄÒ»¸öÓ¦ÓÃϵͳÖУ¬¿É°´ÕÕ¹¦ÄÜ»®·ÖΪ²»Í¬µÄ×é¼þ£¬ÕâЩ×é¼þÓÖ¿ÉÔÚ²»Í¬¼ÆËã»úÉÏ£¬²¢ÇÒ´¦ÓÚÏàÓ¦µÄ²ã´Î(tier)ÖС£ËùÊô²ã´Î°üÀ¨¿Í»§²ã(clietn tier)×é¼þ,web²ãºÍ×é¼þ,Business²ãºÍ×é¼þ,ÆóÒµÐÅϢϵͳ(EIS)²ã¡£
111¡¢UML·½Ãæ
±ê×¼½¨Ä£ÓïÑÔUML¡£ÓÃÀýͼ,¾²Ì¬Í¼(°üÀ¨Ààͼ¡¢¶ÔÏóͼºÍ°üͼ),ÐÐΪͼ,½»»¥Í¼(˳Ðòͼ,ºÏ×÷ͼ),ʵÏÖͼ¡£
112¡¢Ëµ³öһЩ³£ÓõÄÀ࣬°ü£¬½Ó¿Ú£¬Çë¸÷¾Ù5¸ö
³£ÓõÄÀࣺBufferedReader BufferedWriter FileReader FileWirter String Integer
³£Óõİü£ºjava.lang java.awt java.io java.util java.sql
³£ÓõĽӿڣºRemote List Map Document NodeList
113¡¢¿ª·¢Öж¼Óõ½ÁËÄÇЩÉè¼ÆÄ£Ê½?ÓÃÔÚʲô³¡ºÏ?
ÿ¸öģʽ¶¼ÃèÊöÁËÒ»¸öÔÚÎÒÃǵĻ·¾³Öв»¶Ï³öÏÖµÄÎÊÌ⣬ȻºóÃèÊöÁ˸ÃÎÊÌâµÄ½â¾ö·½°¸µÄºËÐÄ¡£Í¨¹ýÕâÖÖ·½Ê½£¬Äã¿ÉÒÔÎÞÊý´ÎµØÊ¹ÓÃÄÇЩÒÑÓеĽâ¾ö·½°¸£¬ÎÞÐèÔÚÖØ¸´ÏàͬµÄ¹¤×÷¡£Ö÷ÒªÓõ½ÁËMVCµÄÉè¼ÆÄ£Ê½¡£ÓÃÀ´¿ª·¢JSP/Servlet»òÕßJ2EEµÄÏà¹ØÓ¦Ó᣼òµ¥¹¤³§Ä£Ê½µÈ¡£
114¡¢jspÓÐÄÄЩ¶¯×÷?×÷Ó÷ֱðÊÇʲô?
JSP¹²ÓÐÒÔÏÂ6ÖÖ»ù±¾¶¯×÷ jsp:include£ºÔÚÒ³Ãæ±»ÇëÇóµÄʱºòÒýÈëÒ»¸öÎļþ¡£ jsp:useBean£ºÑ°ÕÒ»òÕßʵÀý»¯Ò»¸öJavaBean¡£ jsp:setProperty£ºÉèÖÃJavaBeanµÄÊôÐÔ¡£ jsp:getProperty£ºÊä³öij¸öJavaBeanµÄÊôÐÔ¡£ jsp:forward£º°ÑÇëÇóתµ½Ò»¸öеÄÒ³Ãæ¡£ jsp:plugin£º¸ù¾Ýä¯ÀÀÆ÷ÀàÐÍΪJava²å¼þÉú³ÉOBJECT»òEMBED±ê¼Ç¡£
115¡¢Anonymous Inner Class (ÄäÃûÄÚ²¿Àà) ÊÇ·ñ¿ÉÒÔextends(¼Ì³Ð)ÆäËüÀ࣬ÊÇ·ñ¿ÉÒÔimplements(ʵÏÖ)interface(½Ó¿Ú)?
¿ÉÒÔ¼Ì³ÐÆäËûÀà»òÍê³ÉÆäËû½Ó¿Ú£¬ÔÚswing±à³ÌÖг£Óô˷½Ê½¡£
116¡¢Ó¦Ó÷þÎñÆ÷ÓëWEB SERVERµÄÇø±ð£¿
Ó¦Ó÷þÎñÆ÷£ºWeblogic¡¢Tomcat¡¢Jboss
WEB SERVER£ºIIS¡¢ Apache
117¡¢BSÓëCSµÄÁªÏµÓëÇø±ð¡£
C/SÊÇClient/ServerµÄËõд¡£·þÎñÆ÷ͨ³£²ÉÓøßÐÔÄܵÄPC¡¢¹¤×÷Õ¾»òСÐÍ»ú£¬²¢²ÉÓôóÐÍÊý¾Ý¿âϵͳ£¬ÈçOracle¡¢Sybase¡¢Informix»ò SQL Server¡£¿Í»§¶ËÐèÒª°²×°×¨ÓõĿͻ§¶ËÈí¼þ¡£
B/£ÓÊÇBrower/ServerµÄËõд£¬¿Í»§»úÉÏÖ»Òª°²×°Ò»¸öä¯ÀÀÆ÷£¨Browser£©£¬ÈçNetscape Navigator»òInternet Explorer£¬·þÎñÆ÷°²×°Oracle¡¢Sybase¡¢Informix»ò SQL ServerµÈÊý¾Ý¿â¡£ÔÚÕâÖֽṹÏ£¬Óû§½çÃæÍêȫͨ¹ýWWWä¯ÀÀÆ÷ʵÏÖ£¬Ò»²¿·ÖÊÂÎñÂß¼ÔÚǰ¶ËʵÏÖ£¬µ«ÊÇÖ÷ÒªÊÂÎñÂß¼ÔÚ·þÎñÆ÷¶ËʵÏÖ¡£ä¯ÀÀÆ÷ͨ¹ý£×eb Server ͬÊý¾Ý¿â½øÐÐÊý¾Ý½»»¥¡£
C/S Óë B/S Çø±ð£º
£±£®Ó²¼þ»·¾³²»Í¬:
¡¡¡¡C/S Ò»°ã½¨Á¢ÔÚרÓõÄÍøÂçÉÏ, С·¶Î§ÀïµÄÍøÂç»·¾³, ¾ÖÓòÍøÖ®¼äÔÙͨ¹ýרÃÅ·þÎñÆ÷ÌṩÁ¬½ÓºÍÊý¾Ý½»»»·þÎñ.
¡¡¡¡B/S ½¨Á¢ÔÚ¹ãÓòÍøÖ®ÉϵÄ, ²»±ØÊÇרÃŵÄÍøÂçÓ²¼þ»·¾³,ÀýÓëµç»°ÉÏÍø, ×âÓÃÉ豸. ÐÅÏ¢×Ô¼º¹ÜÀí. ÓбÈC/S¸üÇ¿µÄÊÊÓ¦·¶Î§, Ò»°ãÖ»ÒªÓвÙ×÷ϵͳºÍä¯ÀÀÆ÷¾ÍÐÐ
£²£®¶Ô°²È«ÒªÇó²»Í¬
¡¡¡¡C/S Ò»°ãÃæÏòÏà¶Ô¹Ì¶¨µÄÓû§Èº, ¶ÔÐÅÏ¢°²È«µÄ¿ØÖÆÄÜÁ¦ºÜÇ¿. Ò»°ã¸ß¶È»úÃܵÄÐÅϢϵͳ²ÉÓÃC/S ½á¹¹ÊÊÒË. ¿ÉÒÔͨ¹ýB/S·¢²¼²¿·Ö¿É¹«¿ªÐÅÏ¢.
¡¡¡¡B/S ½¨Á¢ÔÚ¹ãÓòÍøÖ®ÉÏ, ¶Ô°²È«µÄ¿ØÖÆÄÜÁ¦Ïà¶ÔÈõ, ¿ÉÄÜÃæÏò²»¿ÉÖªµÄÓû§¡£
£³£®¶Ô³ÌÐò¼Ü¹¹²»Í¬
¡¡¡¡C/S ³ÌÐò¿ÉÒÔ¸ü¼Ó×¢ÖØÁ÷³Ì, ¿ÉÒÔ¶ÔȨÏÞ¶à²ã´ÎУÑé, ¶ÔϵͳÔËÐÐËÙ¶È¿ÉÒÔ½ÏÉÙ¿¼ÂÇ.
¡¡¡¡B/S ¶Ô°²È«ÒÔ¼°·ÃÎÊËٶȵĶàÖØµÄ¿¼ÂÇ, ½¨Á¢ÔÚÐèÒª¸ü¼ÓÓÅ»¯µÄ»ù´¡Ö®ÉÏ. ±ÈC/SÓиü¸ßµÄÒªÇó B/S½á¹¹µÄ³ÌÐò¼Ü¹¹ÊÇ·¢Õ¹µÄÇ÷ÊÆ, ´ÓMSµÄ.NetϵÁеÄBizTalk 2000 Exchange 2000µÈ, È«ÃæÖ§³ÖÍøÂçµÄ¹¹¼þ´î½¨µÄϵͳ. SUN ºÍIBMÍÆµÄJavaBean ¹¹¼þ¼¼ÊõµÈ,ʹ B/S¸ü¼Ó³ÉÊì.
£´£®Èí¼þÖØÓò»Í¬
¡¡¡¡C/S ³ÌÐò¿ÉÒÔ²»¿É±ÜÃâµÄÕûÌåÐÔ¿¼ÂÇ, ¹¹¼þµÄÖØÓÃÐÔ²»ÈçÔÚB/SÒªÇóÏµĹ¹¼þµÄÖØÓÃÐÔºÃ.
¡¡¡¡B/S ¶ÔµÄ¶àÖØ½á¹¹,ÒªÇó¹¹¼þÏà¶Ô¶ÀÁ¢µÄ¹¦ÄÜ. Äܹ»Ïà¶Ô½ÏºÃµÄÖØÓÃ.¾ÍÈëÂòÀ´µÄ²Í×À¿ÉÒÔÔÙÀûÓÃ,¶ø²»ÊÇ×öÔÚǽÉϵÄʯͷ×À×Ó
£µ£®ÏµÍ³Î¬»¤²»Í¬
¡¡¡¡C/S ³ÌÐòÓÉÓÚÕûÌåÐÔ, ±ØÐëÕûÌ忼²ì, ´¦Àí³öÏÖµÄÎÊÌâÒÔ¼°ÏµÍ³Éý¼¶. Éý¼¶ÄÑ. ¿ÉÄÜÊÇÔÙ×öÒ»¸öȫеÄϵͳ
¡¡¡¡B/S ¹¹¼þ×é³É,·½Ãæ¹¹¼þ¸ö±ðµÄ¸ü»»,ʵÏÖϵͳµÄÎÞ·ìÉý¼¶. ϵͳά»¤¿ªÏú¼õµ½×îС.Óû§´ÓÍøÉÏ×Ô¼ºÏÂÔØ°²×°¾Í¿ÉÒÔʵÏÖÉý¼¶.
£¶£®´¦ÀíÎÊÌⲻͬ
¡¡¡¡C/S ³ÌÐò¿ÉÒÔ´¦ÀíÓû§Ãæ¹Ì¶¨, ²¢ÇÒÔÚÏàÍ¬ÇøÓò, °²È«ÒªÇó¸ßÐèÇó, Óë²Ù×÷ϵͳÏà¹Ø. Ó¦¸Ã¶¼ÊÇÏàͬµÄϵͳ
¡¡¡¡B/S ½¨Á¢ÔÚ¹ãÓòÍøÉÏ, ÃæÏò²»Í¬µÄÓû§Èº, ·ÖÉ¢µØÓò, ÕâÊÇC/SÎÞ·¨×÷µ½µÄ. Óë²Ù×÷ϵͳƽ̨¹ØÏµ×îС.
£·£®Óû§½Ó¿Ú²»Í¬
¡¡¡¡C/S ¶àÊǽ¨Á¢µÄWindowƽ̨ÉÏ,±íÏÖ·½·¨ÓÐÏÞ,¶Ô³ÌÐòÔ±ÆÕ±éÒªÇó½Ï¸ß
¡¡¡¡B/S ½¨Á¢ÔÚä¯ÀÀÆ÷ÉÏ, Óиü¼Ó·á¸»ºÍÉú¶¯µÄ±íÏÖ·½Ê½ÓëÓû§½»Á÷. ²¢ÇҴ󲿷ÖÄѶȼõµÍ,¼õµÍ¿ª·¢³É±¾.
£¸£®ÐÅÏ¢Á÷²»Í¬
¡¡¡¡C/S ³ÌÐòÒ»°ãÊǵäÐ͵ÄÖÐÑ뼯ȨµÄ»úеʽ´¦Àí, ½»»¥ÐÔÏà¶ÔµÍ
¡¡¡¡B/S ÐÅÏ¢Á÷Ïò¿É±ä»¯, B-B B-C B-GµÈÐÅÏ¢¡¢Á÷ÏòµÄ±ä»¯, ¸üÏñ½»Ò×ÖÐÐÄ¡£
118¡¢LINUXÏÂỊ̈߳¬GDIÀàµÄ½âÊÍ¡£
LINUXʵÏֵľÍÊÇ»ùÓÚºËÐÄÇáÁ¿¼¶½ø³ÌµÄ"Ò»¶ÔÒ»"Ïß³ÌÄ£ÐÍ£¬Ò»¸öÏß³ÌʵÌå¶ÔÓ¦Ò»¸öºËÐÄÇáÁ¿¼¶½ø³Ì£¬¶øÏß³ÌÖ®¼äµÄ¹ÜÀíÔÚºËÍ⺯Êý¿âÖÐʵÏÖ¡£
GDIÀàΪͼÏñÉ豸±à³Ì½Ó¿ÚÀà¿â¡£
119¡¢STRUTSµÄÓ¦ÓÃ(ÈçSTRUTS¼Ü¹¹)
StrutsÊDzÉÓÃJava Servlet/JavaServer Pages¼¼Êõ£¬¿ª·¢WebÓ¦ÓóÌÐòµÄ¿ª·ÅÔ´ÂëµÄframework¡£ ²ÉÓÃStrutsÄÜ¿ª·¢³ö»ùÓÚMVC(Model-View-Controller)Éè¼ÆÄ£Ê½µÄÓ¦Óù¹¼Ü¡£ StrutsÓÐÈçϵÄÖ÷Òª¹¦ÄÜ£º Ò».°üº¬Ò»¸öcontroller servlet£¬Äܽ«Óû§µÄÇëÇó·¢Ë͵½ÏàÓ¦µÄAction¶ÔÏó¡£ ¶þ.JSP×ÔÓÉtag¿â£¬²¢ÇÒÔÚcontroller servletÖÐÌṩ¹ØÁªÖ§³Ö£¬°ïÖú¿ª·¢Ô±´´½¨½»»¥Ê½±íµ¥Ó¦ÓᣠÈý.ÌṩÁËһϵÁÐʵÓöÔÏó£ºXML´¦Àí¡¢Í¨¹ýJava reflection APIs×Ô¶¯´¦ÀíJavaBeansÊôÐÔ¡¢¹ú¼Ê»¯µÄÌáʾºÍÏûÏ¢¡£
120¡¢JdoÊÇʲô?
JDOÊÇJava¶ÔÏó³Ö¾Ã»¯µÄеĹ淶£¬Îªjava data objectµÄ¼ò³Æ,Ò²ÊÇÒ»¸öÓÃÓÚ´æÈ¡Ä³ÖÖÊý¾Ý²Ö¿âÖеĶÔÏóµÄ±ê×¼»¯API¡£JDOÌṩÁË͸Ã÷µÄ¶ÔÏó´æ´¢£¬Òò´Ë¶Ô¿ª·¢ÈËÔ±À´Ëµ£¬´æ´¢Êý¾Ý¶ÔÏóÍêÈ«²»ÐèÒª¶îÍâµÄ´úÂ루ÈçJDBC APIµÄʹÓã©¡£ÕâЩ·±ËöµÄÀýÐй¤×÷ÒÑ¾×ªÒÆµ½JDO²úÆ·ÌṩÉÌÉíÉÏ£¬Ê¹¿ª·¢ÈËÔ±½âÍѳöÀ´£¬´Ó¶ø¼¯ÖÐʱ¼äºÍ¾«Á¦ÔÚÒµÎñÂß¼ÉÏ¡£ÁíÍ⣬JDOºÜÁé»î£¬ÒòΪËü¿ÉÒÔÔÚÈκÎÊý¾Ýµ×²ãÉÏÔËÐС£JDBCÖ»ÊÇÃæÏò¹ØÏµÊý¾Ý¿â£¨RDBMS£©JDO¸üͨÓã¬Ìṩµ½ÈκÎÊý¾Ýµ×²ãµÄ´æ´¢¹¦ÄÜ£¬±ÈÈç¹ØÏµÊý¾Ý¿â¡¢Îļþ¡¢XMLÒÔ¼°¶ÔÏóÊý¾Ý¿â£¨ODBMS£©µÈµÈ£¬Ê¹µÃÓ¦ÓÿÉÒÆÖ²ÐÔ¸üÇ¿¡£
121¡¢ÄÚ²¿Àà¿ÉÒÔÒýÓÃËû°üº¬ÀàµÄ³ÉÔ±Âð£¿ÓÐûÓÐʲôÏÞÖÆ£¿
Ò»¸öÄÚ²¿Àà¶ÔÏó¿ÉÒÔ·ÃÎÊ´´½¨ËüµÄÍⲿÀà¶ÔÏóµÄÄÚÈÝ
122¡¢WEB SERVICEÃû´Ê½âÊÍ¡£JSWDL¿ª·¢°üµÄ½éÉÜ¡£JAXP¡¢JAXMµÄ½âÊÍ¡£SOAP¡¢UDDI,WSDL½âÊÍ¡£
Web ServiceWeb ServiceÊÇ»ùÓÚÍøÂçµÄ¡¢·Ö²¼Ê½µÄÄ£¿é»¯×é¼þ£¬ËüÖ´ÐÐÌØ¶¨µÄÈÎÎñ£¬×ñÊØ¾ßÌåµÄ¼¼Êõ¹æ·¶£¬ÕâЩ¹æ·¶Ê¹µÃWeb ServiceÄÜÓëÆäËû¼æÈݵÄ×é¼þ½øÐл¥²Ù×÷¡£
JAXP(Java API for XML Parsing) ¶¨ÒåÁËÔÚJavaÖÐʹÓÃDOM, SAX, XSLTµÄͨÓõĽӿڡ£ÕâÑùÔÚÄãµÄ³ÌÐòÖÐÄãֻҪʹÓÃÕâЩͨÓõĽӿڣ¬µ±ÄãÐèÒª¸Ä±ä¾ßÌåµÄʵÏÖʱºòÒ²²»ÐèÒªÐ޸ĴúÂë¡£
JAXM(Java API for XML Messaging) ÊÇΪSOAPͨÐÅÌṩ·ÃÎÊ·½·¨ºÍ´«Êä»úÖÆµÄAPI¡£
WSDLÊÇÒ»ÖÖ XML ¸ñʽ£¬ÓÃÓÚ½«ÍøÂç·þÎñÃèÊöΪһ×é¶Ëµã£¬ÕâЩ¶Ëµã¶Ô°üº¬ÃæÏòÎĵµÐÅÏ¢»òÃæÏò¹ý³ÌÐÅÏ¢µÄÏûÏ¢½øÐвÙ×÷¡£ÕâÖÖ¸ñʽÊ×ÏȶԲÙ×÷ºÍÏûÏ¢½øÐгéÏóÃèÊö£¬È»ºó½«Æä°ó¶¨µ½¾ßÌåµÄÍøÂçÐÒéºÍÏûÏ¢¸ñʽÉÏÒÔ¶¨Òå¶Ëµã¡£Ïà¹ØµÄ¾ßÌå¶Ëµã¼´×éºÏ³ÉΪ³éÏó¶Ëµã£¨·þÎñ£©¡£
SOAP¼´¼òµ¥¶ÔÏó·ÃÎÊÐÒé(Simple Object Access Protocol)£¬ËüÊÇÓÃÓÚ½»»»XML±àÂëÐÅÏ¢µÄÇáÁ¿¼¶ÐÒé¡£
UDDI µÄÄ¿µÄÊÇΪµç×ÓÉÌÎñ½¨Á¢±ê×¼£»UDDIÊÇÒ»Ì×»ùÓÚWebµÄ¡¢·Ö²¼Ê½µÄ¡¢ÎªWeb ServiceÌṩµÄ¡¢ÐÅÏ¢×¢²áÖÐÐĵÄʵÏÖ±ê×¼¹æ·¶£¬Í¬Ê±Ò²°üº¬Ò»×éʹÆóÒµÄܽ«×ÔÉíÌṩµÄWeb Service×¢²á£¬ÒÔʹ±ðµÄÆóÒµÄܹ»·¢ÏֵķÃÎÊÐÒéµÄʵÏÖ±ê×¼¡£
JAVA´úÂë²é´í
1.
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
´óÏÀÃÇ£¬ÕâÓкδíÎó?
´ð°¸: ´í¡£abstract method±ØÐëÒԷֺŽá⣬ÇÒ²»´ø»¨À¨ºÅ¡£
2.
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
ÓдíÂð?
´ð°¸: ´í¡£¾Ö²¿±äÁ¿Ç°²»ÄÜ·ÅÖÃÈκηÃÎÊÐÞÊηû (private£¬public£¬ºÍprotected)¡£final¿ÉÒÔÓÃÀ´ÐÞÊξֲ¿±äÁ¿
(finalÈçͬabstractºÍstrictfp£¬¶¼ÊÇ·Ç·ÃÎÊÐÞÊηû£¬strictfpÖ»ÄÜÐÞÊÎclassºÍmethod¶ø·Çvariable)¡£
3.
abstract class Something {
private abstract String doSomething ();
}
ÕâºÃÏñûʲô´í°É?
´ð°¸: ´í¡£abstractµÄmethods²»ÄÜÒÔprivateÐÞÊΡ£abstractµÄmethods¾ÍÊÇÈÃ×ÓÀàimplement(ʵÏÖ)¾ßÌåϸ½ÚµÄ£¬Ôõô¿ÉÒÔÓÃprivate°Ñabstract
method·âËøÆðÀ´ÄØ? (ͬÀí£¬abstract methodǰ²»ÄܼÓfinal)¡£
4.
public class Something {
public int addOne(final int x) {
return ++x;
}
}
Õâ¸ö±È½ÏÃ÷ÏÔ¡£
´ð°¸: ´í¡£int x±»ÐÞÊγÉfinal£¬Òâζ×Åx²»ÄÜÔÚaddOne methodÖб»Ð޸ġ£
5.
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
ºÍÉÏÃæµÄºÜÏàËÆ£¬¶¼ÊǹØÓÚfinalµÄÎÊÌ⣬ÕâÓдíÂð?
´ð°¸: ÕýÈ·¡£ÔÚaddOne methodÖУ¬²ÎÊýo±»ÐÞÊγÉfinal¡£Èç¹ûÔÚaddOne methodÀïÎÒÃÇÐÞ¸ÄÁËoµÄreference
(±ÈÈç: o = new Other();)£¬ÄÇôÈçͬÉÏÀýÕâÌâÒ²ÊÇ´íµÄ¡£µ«ÕâÀïÐ޸ĵÄÊÇoµÄmember vairable
(³ÉÔ±±äÁ¿)£¬¶øoµÄreference²¢Ã»Óиı䡣
6.
class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
ÓÐʲô´íÄØ? ¿´²»³öÀ´°¡¡£
´ð°¸: ÕýÈ·¡£Êä³öµÄÊÇ"i = 0"¡£int iÊôì¶instant variable (ʵÀý±äÁ¿£¬»ò½Ð³ÉÔ±±äÁ¿)¡£instant variableÓÐdefault value¡£intµÄdefault valueÊÇ0¡£
7.
class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
ºÍÉÏÃæÒ»ÌâÖ»ÓÐÒ»¸öµØ·½²»Í¬£¬¾ÍÊǶàÁËÒ»¸öfinal¡£ÕâÄѵÀ¾Í´íÁËÂð?
´ð°¸: ´í¡£final int iÊǸöfinalµÄinstant variable (ʵÀý±äÁ¿£¬»ò½Ð³ÉÔ±±äÁ¿)¡£finalµÄinstant variableûÓÐdefault value£¬±ØÐëÔÚconstructor (¹¹ÔìÆ÷)½áÊøÖ®Ç°±»¸³ÓèÒ»¸öÃ÷È·µÄÖµ¡£¿ÉÒÔÐÞ¸ÄΪ"final int i = 0;"¡£
8.
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}
¿´ÉÏÈ¥ºÜÍêÃÀ¡£
´ð°¸: ´í¡£¿´ÉÏÈ¥ÔÚmainÀïcall doSomethingûÓÐʲôÎÊÌ⣬±Ï¾¹Á½¸ömethods¶¼ÔÚͬһ¸öclassÀï¡£µ«×Ðϸ¿´£¬mainÊÇstaticµÄ¡£static method²»ÄÜÖ±½Ócall non-static methods¡£¿É¸Ä³É"System.out.println("s.doSomething() returns " + s.doSomething());"¡£Í¬Àí£¬static method²»ÄÜ·ÃÎÊnon-static instant variable¡£
9.
´Ë´¦£¬SomethingÀàµÄÎļþÃû½ÐOtherThing.java
class Something {
private static void main(String[] something_to_do) {
System.out.println("Do something ...");
}
}
Õâ¸öºÃÏñºÜÃ÷ÏÔ¡£
´ð°¸: ÕýÈ·¡£´ÓÀ´Ã»ÓÐÈË˵¹ýJavaµÄClassÃû×Ö±ØÐëºÍÆäÎļþÃûÏàͬ¡£µ«public classµÄÃû×Ö±ØÐëºÍÎļþÃûÏàͬ¡£
10£®
interface A{
int x = 0;
}
class B{
int x =1;
}
class C extends B implements A {
public void pX(){
System.out.println(x);
}
public static void main(String[] args) {
new C().pX();
}
}
´ð°¸£º´íÎó¡£ÔÚ±àÒëʱ»á·¢Éú´íÎó(´íÎóÃèÊö²»Í¬µÄJVMÓв»Í¬µÄÐÅÏ¢£¬Òâ˼¾ÍÊÇδÃ÷È·µÄxµ÷Óã¬Á½¸öx¶¼Æ¥Å䣨¾ÍÏóÔÚͬʱimport java.utilºÍjava.sqlÁ½¸ö°üʱֱ½ÓÉùÃ÷DateÒ»Ñù£©¡£¶ÔÓÚ¸¸ÀàµÄ±äÁ¿,¿ÉÒÔÓÃsuper.xÀ´Ã÷È·£¬¶ø½Ó¿ÚµÄÊôÐÔĬÈÏÒþº¬Îª public static final.ËùÒÔ¿ÉÒÔͨ¹ýA.xÀ´Ã÷È·¡£
11.
interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public void play() {
ball = new Ball("Football");
System.out.println(ball.getName());
}
}
Õâ¸ö´íÎó²»ÈÝÒ×·¢ÏÖ¡£
´ð°¸: ´í¡£"interface Rollable extends Playable, Bounceable"ûÓÐÎÊÌâ¡£interface¿É¼Ì³Ð¶à¸öinterfaces£¬ËùÒÔÕâÀïû´í¡£ÎÊÌâ³öÔÚinterface RollableÀïµÄ"Ball ball = new Ball("PingPang");"¡£ÈκÎÔÚinterfaceÀïÉùÃ÷µÄinterface variable (½Ó¿Ú±äÁ¿£¬Ò²¿É³Æ³ÉÔ±±äÁ¿)£¬Ä¬ÈÏΪpublic static final¡£Ò²¾ÍÊÇ˵"Ball ball = new Ball("PingPang");"ʵ¼ÊÉÏÊÇ"public static final Ball ball = new Ball("PingPang");"¡£ÔÚBallÀàµÄPlay()·½·¨ÖУ¬"ball = new Ball("Football");"¸Ä±äÁËballµÄreference£¬¶øÕâÀïµÄballÀ´×ÔRollable interface£¬Rollable interfaceÀïµÄballÊÇpublic static finalµÄ£¬finalµÄobjectÊDz»Äܱ»¸Ä±äreferenceµÄ¡£Òò´Ë±àÒëÆ÷½«ÔÚ"ball = new Ball("Football");"ÕâÀïÏÔʾÓÐ´í¡£
JAVA±à³ÌÌâ
1£®ÏÖÔÚÊäÈën¸öÊý×Ö£¬ÒÔ¶ººÅ£¬·Ö¿ª£»È»ºó¿ÉÑ¡ÔñÉý»òÕß½µÐòÅÅÐò£»°´Ìá½»¼ü¾ÍÔÚÁíÒ»Ò³ÃæÏÔʾ°´Ê²Ã´ÅÅÐò£¬½á¹ûΪ£¬Ìṩreset
import java.util.*;
public class bycomma{
public static String[] splitStringByComma(String source){
if(source==null||source.trim().equals(""))
return null;
StringTokenizer commaToker = new StringTokenizer(source,",");
String[] result = new String[commaToker.countTokens()];
int i=0;
while(commaToker.hasMoreTokens()){
result[i] = commaToker.nextToken();
i++;
}
return result;
}
public static void main(String args[]){
String[] s = splitStringByComma("5,8,7,4,3,9,1");
int[] ii = new int[s.length];
for(int i = 0;i<s.length;i++){
ii[i] =Integer.parseInt(s[i]);
}
Arrays.sort(ii);
//asc
for(int i=0;i<s.length;i++){
System.out.println(ii[i]);
}
//desc
for(int i=(s.length-1);i>=0;i--){
System.out.println(ii[i]);
}
}
}
2£®½ð¶îת»»£¬°¢À²®Êý×ֵĽð¶îת»»³ÉÖйú´«Í³µÄÐÎʽÈ磺£¨£¤1011£©£>£¨Ò»Ç§ÁãһʰһԪÕû£©Êä³ö¡£
package test.format;
import java.text.NumberFormat;
import java.util.HashMap;
public class SimpleMoneyFormat {
public static final String EMPTY = "";
public static final String ZERO = "Áã";
public static final String ONE = "Ò¼";
public static final String TWO = "·¡";
public static final String THREE = "Èþ";
public static final String FOUR = "ËÁ";
public static final String FIVE = "Îé";
public static final String SIX = "½";
public static final String SEVEN = "Æâ";
public static final String EIGHT = "°Æ";
public static final String NINE = "¾Á";
public static final String TEN = "ʰ";
public static final String HUNDRED = "°Û";
public static final String THOUSAND = "Ǫ";
public static final String TEN_THOUSAND = "Íò";
public static final String HUNDRED_MILLION = "ÒÚ";
public static final String YUAN = "Ôª";
public static final String JIAO = "½Ç";
public static final String FEN = "·Ö";
public static final String DOT = ".";
private static SimpleMoneyFormat formatter = null;
private HashMap chineseNumberMap = new HashMap();
private HashMap chineseMoneyPattern = new HashMap();
private NumberFormat numberFormat = NumberFormat.getInstance();
private SimpleMoneyFormat() {
numberFormat.setMaximumFractionDigits(4);
numberFormat.setMinimumFractionDigits(2);
numberFormat.setGroupingUsed(false);
chineseNumberMap.put("0", ZERO);
chineseNumberMap.put("1", ONE);
chineseNumberMap.put("2", TWO);
chineseNumberMap.put("3", THREE);
chineseNumberMap.put("4", FOUR);
chineseNumberMap.put("5", FIVE);
chineseNumberMap.put("6", SIX);
chineseNumberMap.put("7", SEVEN);
chineseNumberMap.put("8", EIGHT);
chineseNumberMap.put("9", NINE);
chineseNumberMap.put(DOT, DOT);
chineseMoneyPattern.put("1", TEN);
chineseMoneyPattern.put("2", HUNDRED);
chineseMoneyPattern.put("3", THOUSAND);
chineseMoneyPattern.put("4", TEN_THOUSAND);
chineseMoneyPattern.put("5", TEN);
chineseMoneyPattern.put("6", HUNDRED);
chineseMoneyPattern.put("7", THOUSAND);
chineseMoneyPattern.put("8", HUNDRED_MILLION);
}
public static SimpleMoneyFormat getInstance() {
if (formatter == null)
formatter = new SimpleMoneyFormat();
return formatter;
}
public String format(String moneyStr) {
checkPrecision(moneyStr);
String result;
result = convertToChineseNumber(moneyStr);
result = addUnitsToChineseMoneyString(result);
return result;
}
public String format(double moneyDouble) {
return format(numberFormat.format(moneyDouble));
}
public String format(int moneyInt) {
return format(numberFormat.format(moneyInt));
}
public String format(long moneyLong) {
return format(numberFormat.format(moneyLong));
}
public String format(Number moneyNum) {
return format(numberFormat.format(moneyNum));
}
private String convertToChineseNumber(String moneyStr) {
String result;
StringBuffer cMoneyStringBuffer = new StringBuffer();
for (int i = 0; i < moneyStr.length(); i++) {
cMoneyStringBuffer.append(chineseNumberMap.get(moneyStr.substring(i, i + 1)));
}
//ʰ°ÛǪÍòÒڵȶ¼ÊǺº×ÖÀïÃæ²ÅÓеĵ¥Î»£¬¼ÓÉÏËüÃÇ
int indexOfDot = cMoneyStringBuffer.indexOf(DOT);
int moneyPatternCursor = 1;
for (int i = indexOfDot - 1; i > 0; i--) {
cMoneyStringBuffer.insert(i, chineseMoneyPattern.get(EMPTY + moneyPatternCursor));
moneyPatternCursor = moneyPatternCursor == 8 ? 1 : moneyPatternCursor + 1;
}
String fractionPart = cMoneyStringBuffer.substring(cMoneyStringBuffer.indexOf("."));
cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf("."), cMoneyStringBuffer.length());
while (cMoneyStringBuffer.indexOf("Áãʰ") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("Áãʰ"), cMoneyStringBuffer.indexOf("Áãʰ") + 2, ZERO);
}
while (cMoneyStringBuffer.indexOf("Áã°Û") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("Áã°Û"), cMoneyStringBuffer.indexOf("Áã°Û") + 2, ZERO);
}
while (cMoneyStringBuffer.indexOf("ÁãǪ") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("ÁãǪ"), cMoneyStringBuffer.indexOf("ÁãǪ") + 2, ZERO);
}
while (cMoneyStringBuffer.indexOf("ÁãÍò") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("ÁãÍò"), cMoneyStringBuffer.indexOf("ÁãÍò") + 2, TEN_THOUSAND);
}
while (cMoneyStringBuffer.indexOf("ÁãÒÚ") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("ÁãÒÚ"), cMoneyStringBuffer.indexOf("ÁãÒÚ") + 2, HUNDRED_MILLION);
}
while (cMoneyStringBuffer.indexOf("ÁãÁã") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("ÁãÁã"), cMoneyStringBuffer.indexOf("ÁãÁã") + 2, ZERO);
}
if (cMoneyStringBuffer.lastIndexOf(ZERO) == cMoneyStringBuffer.length() - 1)
cMoneyStringBuffer.delete(cMoneyStringBuffer.length() - 1, cMoneyStringBuffer.length());
cMoneyStringBuffer.append(fractionPart);
result = cMoneyStringBuffer.toString();
return result;
}
private String addUnitsToChineseMoneyString(String moneyStr) {
String result;
StringBuffer cMoneyStringBuffer = new StringBuffer(moneyStr);
int indexOfDot = cMoneyStringBuffer.indexOf(DOT);
cMoneyStringBuffer.replace(indexOfDot, indexOfDot + 1, YUAN);