¾Ö²¿±äÁ¿£ºÔÚº¯Êý»ò·½·¨ÖеıäÁ¿
ʵÀý±äÁ¿£ºÀàµÄÒ»¸öʵÀý£¬¾ÍÊÇÒ»¸ö¶ÔÏó¡£
³ÉÔ±±äÁ¿£ºÀàÖеıäÁ¿£¨·½·¨ÖеıäÁ¿³ýÍ⣩
Àà±äÁ¿£º ÀàÖеľ²Ì¬±äÁ¿
¾Ö²¿£¬ÊµÀý£¬³ÉÔ±±äÁ¿£¬Éú´æÖÜÆÚºÍ×÷ÓÃÓòÒ»ÖÂ
Àà±äÁ¿£º×÷ÓÃÓòpublicÈ«¾ÖµÄ£¬privateÔÚ±¾ÀàÖС£ÉúÃüÖÜÆÚºÍÈ«¾Ö±äÁ¿Ò»Ö ......
³ÌÐòÉè¼ÆÊǽâ¾öÎÊÌâ˼·µÄ¾ßÌ廯.¾ÍÏñ½¨ÔìÒ»×ù·¿×ÓÒ»Ñù£¬ÓÃʲôÑùµÄ²ÄÁÏ,½¨Ôìʲô·ç¸ñµÄ½¨Öþ,¾ßÌåÿ¸öλÖÃÊÇʲô... ²»Í¬µÄ½¨Öþʦ»áÓв»Í¬µÄ·½·¨. ¶ø°ÑÍê³ÉÄ³Ò»ÌØ¶¨ÎÊÌâµÄ½â¾ö˼·¹æ·¶Ò»Ï ¾Í¿ÉÒÔ³Æ×÷ΪһÖÖÉè¼ÆÄ£Ê½.
³ÌÐòÉè¼ÆÖÐÉè¼ÆÄ£Ê½ÎªÎÒÃÇÔÚijһÎÊÌâÓòÌṩÁËÒ»ÖÖÁ¼ºÃµÄʵÏÖ·½·¨²Î¿¼£¬¿ÉÒÔ´ó´óʵÏÖ¸´Óú͸ßЧ¡£
ÏÂÃæÎÒÃǼòÒª¿´ÏÂjavaÏà¹ØµÄÉè¼ÆÄ£Ê½°É
A ´´½¨Ä£Ê½£¨¶ÔÏóµÄ´´½¨¶¼ÊÇÏûºÄϵͳ×ÊÔ´£¬creattionģʽ¾ÍÊÇÓйش´½¨µÄһЩָµ¼ºÍÔÔò£©
1 Factory£¨¹¤³§ºÍ³éÏ󹤳§£©
2 Factory Method £¨¹¤³§·½·¨£©
3 prototype£¨ÔÐÍ£©
4 builder£¨´´½¨£©
5 singleton£¨µ¥Àý£©
B ½á¹¹Ä£Ê½£¨¶ÔÏóºÍ¶ÔÏóÖ®¼äÊÇÓÐ΢ÃîµÄ¹ØÏµµÄ£¬structureģʽÊÇÍê³É¸÷ÀàÐͶÔÏóÖ®¼äµÄ¼Ì³Ð£¬ÊµÏÖ£¬ÒÀÀµ¹ØÏµ£¬Éè¼Æ½¡×³ÏµÍ³µÄһЩÓÅÁ¼µÄģʽ²Î¿¼£©
6 facade£¨Íâ¹Û£©
7 proxy£¨´úÀí£©
8 adapter£¨ÊÊÅäÆ÷£©
9 bridge £¨ÇÅÁº£©
10 Composite£¨ºÏ³É£©
11 Decorator£¨×°ÊΣ©
12 Flyweight £¨ÏíÔª£©
C ÐÐΪģʽ£¨ÐÐΪģʽÖ÷ÒªÊÇ ......
btraceÊÇsunÍÆ³öµÄÒ»¿îjavaÐÔÄÜ¼à¿Ø¹¤¾ß£¬ÀûÓÃjava agent ºÍ jvm attach¼¼Êõ£¬¿ÉÒÔ²»Í£»úµÄÇé¿öÏÂ¼à¿ØÏßÉÏÇé¿ö£¬²¢ÇÒ×öµ½×îÉÙµÄÇÖÈ룬ռÓÃ×îÉÙµÄϵͳ×ÊÔ´¡£
Ïêϸ¼û¹Ù·½Îĵµ
ÁíÍâbtraceÓкÜÑϸñµÄÏÞÖÆ£¬±ÈÈçÆ´½Ó×Ö·û´®¡¢Ñ»·¡¢µÝ¹é¡¢ÒÔ¼°ÎÒÃÇÆ½Ê±¾³£ÓõÄһЩ·½·¨¶¼²»¿ÉÒÔÓã¬ËûÓÐËû×Ô¼º×¨ÃŵÄÀà¿â¡£
btrace»¹ÌṩÁËVisualVM Plugin ÒÔ¼°Netbeans Plugin¡£
¾ßÌåʹÓÃÈçÏ¡£
1.ÏÂÔØbtrace°ü http://kenai.com/projects/btrace/downloads/directory/releases¡£
2.ÉèÖû·¾³±äÁ¿¡£
3.¶¨ÖÆ×Ô¼ºÐèÒªµÄ½Å±¾¡£
4.jpsÃüÁî²é³öÐèÒª¼à¿ØµÄjvm pid¡£
5.µ÷ÓÃÃüÁî btrace <pid> <×Ô¼º¶¨ÖƵĽű¾> <Êä³öÎļþ> eg£ºbtrace 3045 PrintExecuteTime.java > time.log
ÎÒ¾³£Ê¹ÓõŦÄÜÒ»ÊÇ¼à¿ØÄ³Ð©·½·¨µÄºÄʱ£¬¶þÊDz鿴ijЩ·½·¨µÄ²ÎÊýÖµ£¬ÈýÊÇ¼à¿ØÄÚ´æÊ¹ÓÃÇé¿ö¡£
½Å±¾¾ÙÀýÈçÏÂ
1.¼à¿Ø·½·¨²ÎÊý£¨Êý×飩
Java´úÂë
import static com.sun.btrace.BTraceUtils.print;
import static com.sun.btrace.BTraceUtils.printArray;
import static com.sun.btrace.BTraceUtils.println;   ......
SunÈÏΪC#²»»áÌæ´úJava ¡¡Õª×Ô£ºÎÒ°®ÄϹϸçÍøÕ¾¡¡ Microsoft(΢Èí¹«Ë¾)˵¡ÃC#ͬJava²»Ò»Ñù£¬½«³ÉΪһ¸ö¹ú¼ÊÐÔ±ê×¼¡£ ¡¡¡¡C#ͬJava½ÏÁ¿µÄµÚÒ»¾Ö±ÈÈüÒѾ¿ªÊ¼£¬Sun¹«Ë¾Éù³ÆMicrosoftÒѾ¸øÒ»¸ö²»Ïà¹ØµÄ±ê׼ίԱ»áµÝ½»ÁËÒ»¸öÁíÈË»ìÏýµÄ¡¢²»ÍêÉÆµÄ¼¼Êõ±ê×¼¡£ ¡¡¡¡Sun¹«Ë¾µÄ¹¤³ÌʦÃÇ×ÔMicrosoft¹«Ë¾ÓÚÐÇÆÚÒ»·¢²¼ÁËC#±ê×¼ÒÔÀ´£¬Ò»Ö±ÔÚ×ÐϸËÑѰC#±ê×¼µÄ¼¼ÊõÐÅÏ¢£¬²¢ÇÒÐû³ÆC#²»¿ÉÄÜÌæ»»Java¡£ËûÃÇ˵¡ÃÒòΪMicrosoftµÄÎļþ²»È«Ã棬ËùÒÔËûÃDz»ÄÜ˵Çå³þC#µ½µ×ÊǸÉʲôÓõ쬾¡¹ÜÈç´Ë£¬ËûÃÇÏàÐÅC#ÊÇ"C»òÕßC++µÄÏÂÒ»´úÐÞ¶©°æ"£¬¶øÕâÓÖ¸úWindows²Ù×÷ƽºÏ½ôÃÜÏà¹Ø¡£ ¡¡¡¡Microsoft²úÆ·¾ÀíTony Goodhew³ÐÈÏ¡ÃMicrosoft¹«Ë¾Ëù³ÊË͵ÄC#ÔÚ¼¼ÊõÉÏÊDz»ÍêÉÆµÄ¡£µ«Ëû˵¡ÃÕýÒòΪÈç´Ë£¬Òµ½çÆäËü¹«Ë¾¿ÉÒÔ°ïÖúMicrosoft¶ÔC#½øÐж¨Òå¡£ËûÐû³ÆC#½«Êǽ»²æÆ½Ì¨£¬²»½ö½öͬWindowsÏà¹Ø¡£ÐÇÆÚÒ»£¬Microsoft°ÑC#ºÍCLI(Ò»ÖÖͨÓÃÓïÑԼܹ¹£¬Ö§³ÖC#¡¢ECMASriptºÍÆäËüÎ´ÌØ±ð¶¨ÒåµÄÓïÑÔ)Ìá½»¸øECMA¡£ECMAÊÇÉèÔÚÈÕÄÚÍߵıê×¼»ú¹¹£¬ÔÚSunÓÚÈýÔ·ݳ·»ØJava֮ǰËüÒ²¿¼Âǽ«Java±ê×¼»¯¡£ ¡¡¡¡Microsoft¸øECMAËù³ÊË͵ı¨¸æÃèÊöÁËC#µÄ×î³õ¼¼Êõ¹æ¸ñ£¬µ«Î´¶ÔCLI¼¼Êõ¹æ¸ñ×÷ÈκÎ˵Ã÷¡£MicrosoftÏ£ÍûÔÚ10ÔÂ15ÈÕǰÌá½»ÍêÕûµÄ¼¼Êõ²Ý°¸¡ ......
ºÜ¼òµ¥µÄСÀý×Ó£¬ÊʺϳõѧÕßÀí½â
1£¬JavaFlex.java
package flex;
public class JavaFlex {
public String helloJavaFlex(String name) {
return name;
}
}
2£¬remoting-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true" />
</adapters>
<default-channels>
<channel ref="my-amf" />
</default-channels>
<destination id="firstJavaFlex">
<properties>
<source>flex.JavaFlex
</source>
</properties>
</destination>
</service>
3£¬testflex.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" ......
ºÜ¼òµ¥µÄСÀý×Ó£¬ÊʺϳõѧÕßÀí½â
1£¬JavaFlex.java
package flex;
public class JavaFlex {
public String helloJavaFlex(String name) {
return name;
}
}
2£¬remoting-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true" />
</adapters>
<default-channels>
<channel ref="my-amf" />
</default-channels>
<destination id="firstJavaFlex">
<properties>
<source>flex.JavaFlex
</source>
</properties>
</destination>
</service>
3£¬testflex.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" ......
ÔÚ¿ª·¢ÏîÄ¿¹¤³Ìʱ£¬¾³£»áÓöµ½±£´æÄ³Ð©Öµ·Åµ½ÏµÍ³µÄcacheÖУ¬ÏÖÓÃCache.javaºÍCacheManager.javaÀ´¹ÜÀí¡£¾ßÌå´úÂë·Ö±ðÈçÏ£º
public class Cache {
private String key;
private Object value;
private long timeOut;
private boolean expired;
public Cache() {
super();
}
public Cache(String key, String
value, long timeOut, boolean expired) {
this.key = key;
& ......