1£¬OCP(Open-Close Principle)¿ª±ÕÔÔò
Software entities should be open for extension,but closed for modification,(ÔÚÉè¼ÆÒ»¸öÄ£¿éµÄʱºò£¬Ó¦µ±Ê¹Õâ¸öÄ£¿é¿ÉÒÔÔÚ²»±»Ð޸ĵÄǰÌáÏÂÀ©Õ¹)¡£
¶ÔÀ©Õ¹¿ª·Åopen£¬¶ÔÐ޸ĹرÕclose¡£ÈçºÎʵÏÖ£¿
(1)£¬³éÏó»¯Êǹؼü;
(2)¶Ô¿É±äÐԵķâ×°ÔÔò(Principle of Encapsulation of Variation EVP)¡£ÓÃÎÒ×Ô¼ºµÄ»°À´Ëµ£¬ÔÚÎÒÃÇÉè¼ÆÄ£¿éµÄʱºò£¬Òª½«ÆäËû“ÀàËÆ”µÄÀ࣬ÌáÈ¡³öÀ´¹²Í¬µÄ´úÂ룬¾ÍÊÇËùνµÄ“³éÏó”¡£¶ø¶ÔÓÚÄÄЩ´úÂë·ÅÔÚ³éÏóÀàÀïÃæÈ¥£¬¾ÍÊÇ´æÔڿɱäÐԵĵط½.¶ÔÓÚÕâµã£¬ÎÒ»¹Ã»ÓÐÌå»áµ½¡£µäÐÍÈÝÒ×Àí½âµÄÁÐ×Ó£¬¹¤³§Ä£Ê½¡£µ±ÐèÒªÐÂÔö¼ÓÒ»¸öÀàµÄʱºò£¬Ö±½Ó¼Ì³Ðproduct½Ó¿Ú¾Í¿ÉÒÔÁË¡£
2£¬Liskov Subsitution Principle(LSP)ÀïÊÏ´ú»»ÔÔò
¾ÍÊÇ×ÓÀà¿ÉÒÔ´úÌæ¸¸Àà³öÏÖµÄÈκεط½£¬ÔÚ³éÏóµÄʱºò£¬ÖØÒªµÄÒªÀí½âµÄÒ»¸öµØ·½Á½ ......
¹ØÓÚ¾ø¶Ô·¾¶ºÍÏà¶Ô·¾¶£º
¾ø¶Ô·¾¶¾ÍÊÇÄãµÄÖ÷Ò³ÉϵÄÎļþ»òĿ¼ÔÚÓ²ÅÌÉÏÕæÕýµÄ·¾¶£¬(URLºÍÎïÀí·¾¶)ÀýÈ磺C:xyz est.txt ´ú±íÁËtest.txtÎļþµÄ¾ø¶Ô·¾¶¡£http://www.sun.com/index.htmÒ²´ú±íÁËÒ»¸öURL¾ø¶Ô·¾¶¡£Ïà¶Ô·¾¶£ºÏà¶ÔÓëij¸ö»ù׼Ŀ¼µÄ·¾¶¡£°üº¬WebµÄÏà¶Ô·¾¶£¨HTMLÖеÄÏà¶ÔĿ¼£©£¬ÀýÈ磺ÔÚServletÖУ¬"/"´ú±íWebÓ¦ÓõĸúĿ¼¡£ºÍÎïÀí·¾¶µÄÏà¶Ô±íʾ¡£ÀýÈ磺"./" ´ú±íµ±Ç°Ä¿Â¼,"../"´ú±íÉϼ¶Ä¿Â¼¡£ÕâÖÖÀàËÆµÄ±íʾ£¬Ò²ÊÇÊôÓÚÏà¶Ô·¾¶¡£ÁíÍâ¹ØÓÚURI£¬URL,URNµÈÄÚÈÝ£¬Çë²Î¿¼RFCÏà¹ØÎĵµ±ê×¼¡£RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,(http://www.ietf.org/rfc/rfc2396.txt)2.¹ØÓÚJSP/ServletÖеÄÏà¶Ô·¾¶ºÍ¾ø¶Ô·¾¶¡£ 2.1·þÎñÆ÷¶ËµÄµØÖ··þÎñÆ÷¶ËµÄÏà¶ÔµØÖ·Ö¸µÄÊÇÏà¶ÔÓÚÄãµÄwebÓ¦ÓõĵØÖ·£¬Õâ¸öµØÖ·ÊÇÔÚ·þÎñÆ÷¶Ë½âÎöµÄ£¨²»Í¬ÓÚhtmlºÍjavascriptÖеÄÏà¶ÔµØÖ·£¬ËûÃÇÊÇÓɿͻ§¶Ëä¯ÀÀÆ÷½âÎöµÄ£©
µÚÒ»ÖÖ£º
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
½á¹û:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin
»ñÈ¡µ±Ç°ÀàµÄËùÔÚ¹¤³Ì·¾¶;
Èç¹û²»¼Ó“/”
File f ......
ÔÚ
JAVA
ÖУ¬ÓÐÁù¸ö²»Í¬µÄµØ·½¿ÉÒÔ´æ´¢Êý¾Ý£º
1.
¼Ä´æÆ÷£¨
register
£©¡£ÕâÊÇ×î¿ìµÄ´æ´¢Çø£¬ÒòΪËüλÓÚ²»Í¬ÓÚÆäËû´æ´¢ÇøµÄµØ·½——´¦ÀíÆ÷ÄÚ²¿¡£µ«ÊǼĴæÆ÷µÄÊýÁ¿¼«
ÆäÓÐÏÞ£¬ËùÒԼĴæÆ÷ÓɱàÒëÆ÷¸ù¾ÝÐèÇó½øÐзÖÅä¡£Äã²»ÄÜÖ±½Ó¿ØÖÆ£¬Ò²²»ÄÜÔÚ³ÌÐòÖиоõµ½¼Ä´æÆ÷´æÔÚµÄÈκμ£Ïó¡£
2.
¶ÑÕ»£¨
stack
£©¡£Î»ÓÚͨÓÃ
RAM
ÖУ¬µ«Í¨¹ýËüµÄ“¶ÑÕ»Ö¸Õ딿ÉÒÔ´Ó´¦ÀíÆ÷ÄÄÀï»ñµÃÖ§³Ö¡£¶ÑÕ»Ö¸ÕëÈôÏòÏÂÒÆ¶¯£¬Ôò·ÖÅäеÄÄڴ棻
ÈôÏòÉÏÒÆ¶¯£¬ÔòÊÍ·ÅÄÇЩÄÚ´æ¡£ÕâÊÇÒ»ÖÖ¿ìËÙÓÐЧµÄ·ÖÅä´æ´¢·½·¨£¬½ö´ÎÓڼĴæÆ÷¡£´´½¨³ÌÐòʱºò£¬
JAVA
±àÒëÆ÷±ØÐëÖªµÀ´æ´¢ÔÚ¶ÑÕ»ÄÚËùÓÐÊý¾ÝµÄÈ·ÇдóСºÍÉúÃüÖÜÆÚ£¬ÒòΪËü±ØÐëÉú³ÉÏàÓ¦µÄ´úÂ룬ÒÔ±ãÉÏÏÂÒÆ¶¯¶ÑÕ»Ö¸Õë¡£ÕâÒ»Ô¼ÊøÏÞÖÆÁ˳ÌÐòµÄÁé»î
ÐÔ£¬ËùÒÔËäȻijЩ
JAVA
Êý¾Ý´æ´¢ÔÚ¶ÑÕ»ÖЗ—ÌØ±ðÊǶÔÏóÒýÓ㬵«ÊÇ
JAVA
¶ÔÏó²»´æ´¢ÆäÖС£
3.
¶Ñ£¨
heap
£©¡£Ò»ÖÖͨÓÃÐÔµÄÄÚ´æ³Ø£¨Ò²´æÔÚÓÚ
RAM
ÖУ©£¬ÓÃÓÚ´æ·ÅËùÒÔµÄ
JAVA
¶ÔÏ󡣶Ѳ»Í¬ÓÚ¶ÑÕ»µÄºÃ´¦ÊÇ£º±àÒëÆ÷²»ÐèÒªÖªµÀÒª´Ó¶ÑÀï·ÖÅä¶àÉÙ´æ´¢ÇøÓò£¬Ò²²»±ØÖªµÀ´æ´¢µÄÊý
¾ÝÔÚ¶ÑÀï´æ»î¶à³¤Ê±¼ä¡£Òò´Ë£¬ÔÚ¶ÑÀï·ÖÅä´æ´¢ÓкܴóµÄÁé»îÐÔ¡£µ±ÄãÐèÒª´´½¨Ò»¸ö¶ ......
1.[http://www.javaalmanac.com] Java¿ª·¢ÕßÄê¼øÒ»ÊéµÄÔÚÏß°æ±¾. ÒªÏë¿ìËٲ鵽ijÖÖJava¼¼ÇɵÄÓ÷¨¼°Ê¾Àý´úÂë, ÕâÊÇÒ»¸ö²»´íµÄÈ¥´¦.
2.[http://www.onjava.com] OReillyµÄJavaÍøÕ¾. ÿÖܶ¼ÓÐÐÂÎÄÕÂ.
3.[http://java.sun.com] ¹Ù·½µÄJava¿ª·¢ÕßÍøÕ¾ ÿÖܶ¼ÓÐÐÂÎÄÕ·¢±í.
4.[http://www.developer.com/java] ÓÉGamelan.com ά»¤µÄJava¼¼ÊõÎÄÕÂÍøÕ¾.
5.[http://www.java.net] Sun¹«Ë¾Î¬»¤µÄÒ»¸öJavaÉçÇøÍøÕ¾.
6.[http://www.builder.com] CnetµÄBuilder.comÍøÕ¾ ËùÓеļ¼ÊõÎÄÕÂ, ÒÔJavaΪÖ÷.
7.[http://www.ibm.com/developerworks/java] IBMµÄDeveloperworks¼¼ÊõÍøÕ¾; ÕâÊÇÆäÖеÄJava¼¼ÊõÖ÷Ò³.
8.[http://www.javaworld.com] ×îÔçµÄÒ»¸öJavaÕ¾µã. ÿÖܸüÐÂJava¼¼ÊõÎÄÕÂ.
9.[http://www.devx.com/java] DevXά»¤µÄÒ»¸öJava¼¼ÊõÎÄÕÂÍøÕ¾.
10.[http://www.fawcette.com/javapro] JavaProÔÚÏßÔÓÖ¾ÍøÕ¾.
11.[http://www.sys-con.com/java] Java Developers JournalµÄÔÚÏßÔÓÖ¾ÍøÕ¾.
12.[http://www.javadesktop.org] λÓÚJava.netµÄÒ»¸öJava×ÀÃæ¼¼ÊõÉçÇøÍøÕ¾.
13.[http://www.theserverside.com] ÕâÊÇÒ»¸öÌÖÂÛËùÓÐJava·þÎñÆ÷¶Ë ......
Java±¾µØ½Ó¿Ú(Java Native Interface (JNI))ÔÊÐíÔËÐÐÔÚJavaÐéÄâ»ú(Java Virtual
Machine (JVM))ÉϵĴúÂëµ÷Óñ¾µØ³ÌÐòºÍÀà¿â£¬»òÕß±»ËüÃǵ÷Óã¬ÕâЩ³ÌÐòºÍÀà¿â¿ÉÒÔÊÇÆäËüÓïÑÔ±àдµÄ£¬±ÈÈçC¡¢C++»òÕß»ã±àÓïÑÔ¡£
¡¡¡¡µ±Ò»¸ö³ÌÐòÎÞ·¨ÍêȫʹÓÃJava±àдʱ£¬¿ª·¢Õß¿ÉÒÔͨ¹ýJNIÀ´±àд±¾µØ·½·¨£¬±ÈÈç±ê×¼JavaÀà¿â²¢²»Ö§³ÖµÄÒÀÀµÓÚÆ½Ì¨µÄÌØÉ«»òÕß³ÌÐò¿â¡£JNI»¹¿ÉÒÔÓÃÓÚÐÞ¸ÄÏÖÓеÄʹÓÃÆäËüÓïÑÔ±àдµÄ³ÌÐò£¬Ê¹ËüÃÇ¿ÉÒÔͨ¹ýJava±àдµÄ³ÌÐòÀ´·ÃÎÊ¡£
¡¡¡¡ºÜ¶à»ù±¾Àà¿â¶¼ÒÀÀµJNIÀ´Îª¿ª·¢ÕߺÍÓû§Ìṩ·þÎñ£¬±ÈÈçÎļþµÄÊäÈë/Êä³öºÍÒôƵ¹¦ÄÜ¡£ÔÚ»ù±¾Àà¿âÖаüº¬µÄ¶ÔÓÚÐÔÄÜºÍÆ½Ì¨Ãô¸ÐµÄAPI¿ÉÒÔÔÊÐí
ËùÓеÄJava³ÌÐòÒÔ°²È«ºÍƽ̨Î޹صķ½Ê½À´Ê¹ÓÃÕâЩ¹¦ÄÜ£¬ÔÚ²ÉÓÃJNI֮ǰ£¬¿ª·¢ÕßÐèÒªÃ÷È·ÕâЩ¹¦Äܲ¢²»ÊÇÒѾ°üº¬ÔÚJava±ê×¼Àà¿âÖеģ¬ÔÚÕâÆªÎÄÕÂ
ÖУ¬ÎÒ½«»á½²½âJNIÊÇÈçºÎ¹¤×÷µÄÒÔ¼°±¾µØÀàÐÍÊÇÈçºÎÓ³Éäµ½JavaµÄÀàÐͺÍÀà¿âµÄ¡£
¡¡¡¡JNI¹¤×÷ÔÀí
¡¡¡¡ÔÚJNIÖУ¬±¾µØº¯ÊýÊÇͨ¹ýÒ»¸ö¶ÀÁ¢µÄ.c»ò.cppÎļþÀ´ÊµÏÖµÄ(C++ΪJNIÌṩµÄ½çÃæ»á¸ü¼ò½àһЩ)¡£µ±JVMµ÷Óøú¯Êýʱ£¬Ëü´«µÝÁËÒ»¸öJNIEnvÖ¸Õë¡¢Ò»¸öjobjectÖ¸ÕëºÍͨ¹ýJava·½·¨¶¨ÒåµÄJava²ÎÊý£¬JNIº¯ÊýµÄÐÎʽÈçÏ£º
¡¡JNIEXPORT void JNICALL ......
ÕûÀí¹ØÓÚjavaµÄString
Àà,equalsº¯ÊýºÍ±È½Ï²Ù×÷·ûµÄÇø±ð
³õѧ Java
ÓжÎʱ¼äÁË£¬¸Ð¾õËÆºõ¿ªÊ¼ÈëÁËÃÅ£¬ÓÐÁ˵ã¶ù¸Ð¾õµ«ÊÇ·¢ÏֺܶàÀ§»óºÍÒÉÎʶøÇÒ¾ùÀ´×ÔÓÚ×î»ù´¡µÄ֪ʶÕÛÌÚÁËÒ»Õó×ÓÓÖ²éÁ˲éÊ飬ÖÕÓÚ¶Ô String
Õâ¸öÌØÊâµÄ¶ÔÏóÓÐÁ˵ã¸ÐÎò´ó¼ÒÏÈÀ´¿´¿´Ò»¶ÎÆæ¹ÖµÄ³ÌÐò£º
public class TestString {
public static void main(String[] args) {
String s1 = "Monday";
String s2 = "Monday";
}
}
Õâ¸ö³ÌÐòÕæÊǼòµ¥°¡£¡¿ÉÊÇÓÐʲôÎÊÌâÄØ£¿
1. À´×Ô String µÄÓÇÂÇÉÏÃæÕâ¶Î³ÌÐòÖУ¬µ½µ×Óм¸¸ö¶ÔÏóÄØ£¿
¿ÉÄܺܶàÈËÍѿڶø³ö£ºÁ½¸ö£¬s1 ºÍ s2Ϊʲô£¿String ÊÇ final
À࣬ËüµÄÖµ²»¿É±ä¡£¿´ÆðÀ´ËƺõºÜÓеÀÀí£¬ÄÇôÀ´¼ì²âһϰɣ¬ÉÔ΢¸Ä¶¯Ò»Ï³ÌÐò¾Í¿ÉÒÔ¿´µ½½á¹ûÁË£º
public class TestString {   ......