Java Ö®´úÀíģʽ
´úÀíģʽ
´úÀíģʽµÄ×÷ÓÃ: ΪÆäËû¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖƶÔÕâ¸ö¶ÔÏóµÄ·ÃÎÊ£¬ÔÚijЩÇé¿öÏ£¬Ò»¸ö¿Í»§²»Ïë»òÕß²»ÄÜÖ±½ÓÒýÓÃÁíÒ»¸ö¶ÔÏó£¬
¶ø´úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§¶ËºÍÄ¿±ê¶ÔÏóÖ®¼äÆðµ½ ÖÐ½é µÄ×÷ÓÃ
¾ÙÒ»¸öÀý×Ó: ijһ¸öÈËÏëÇëÒ»¸ö¾Ö³¤ÎªËû°ìһЩÊÂÇé,Õâ¸öÈË¿ÉÄܲ»ÄÜÖ±½ÓÈ¥Õâ¸ö¾Ö³¤£¬ÒòΪ¾Ö³¤²»ÈÏʶËû£¬¼´Ê¹¿Í»§¸øËûËÍÀñ»òһЩǮ£¬¾Ö³¤Ò²²»»áÊÕ,ÕâʱºòÔõô°ì£¿¿Í»§¿ÉÒÔÏÈÈ¥ÕÒ¾Ö³¤µÄÃØÊé»òÉí±ßºìÈË£¬¾Ö³¤ÃØÊ鵱ȻÀ²£¬¸ú¾Ö³¤±È½ÏÃÜÇУ¬
Õâ¸ö¿Í»§ËûÈÏʶÕâ¸öÃØÊ飬Ëûͨ¹ýÃØÊ飬¸æËßÕâ¸öÃØÊ飬ÎÒÒªÏëÇë¾Ö³¤°ìЩʲôÊÂÇéÓÉÕâ¸öÃØÊéÈ¥Èþֳ¤È¥×öÕâ¸öÊÂÇ飬ËûÄØ£¬°ÑһЩËÍÀñ°¡£¬ÀñÆ·°¡Ë͸øÃØÊ飬ÓÉÃØÊéת½»¸ø¾Ö³¤¾Ö³¤ÊÕµ½ÃØÊ鏸ËûµÄÀñÎïÖ®ºó£¬Ëû¾Í¿ÉÒÔΪÕâ¸öÈ˰ìЩÊÂÇ飬ÕâʱºòÃØÊé¾ÍÏ൱ÓÚÊÇÖн顣
³éÏó½ÇÉ«£ºÏë°ìʵÄÈË
´úÀí½ÇÉ«£ºÃØÊé
ÕæÊµ½ÇÉ«£º¾Ö³¤£¬Ëû¾ßÓÐÍê³ÉËùÐèÒªµÄ¹¦ÄÜ
1.ʾÀý
Ö÷ҪʵÏÖ´úÂë,·Ö 4 ²½:
µÚÒ»²½ ³éÏó½ÇÉ«:
Subject.java
abstract public class Subject{ abstract public void request();}
µÚ¶þ²½´úÀí½ÇÉ«:
ProxySubject.java
public class ProxySubject{
private RealSubject realSubject; //ÒÔÕæÊµ½ÇÉ«×÷Ϊ´úÀí½ÇÉ«µÄÊôÐÔ
public ProxySubject(){}
public void request(){ //¸Ã·½·¨·â×°ÁËÕæÊµ¶ÔÏóµÄrequest·½·¨
preRequest();
if(realSubject == null)
{
realSubject = new RealSubject();
}
realSubject.request(); //´Ë´¦Ö´ÐÐÕæÊµ¶ÔÏóµÄrequest·½·¨,Õâ¾äÌåÏÖÁË´úÀí˼Ïë
postRequest();
}
private void preRequest(){
System.out.println("hello");
}
private void postRequest(){
System.out.println("world");
}
}
µÚÈý²½ ÕæÊµ½ÇÉ«
RealSubject.java
public class RealSubject{
public RealSubject(){}
public void request(){
System.out.println("from real request");
}
}
µÚËIJ½ ¿Í»§¶Ëµ÷ÓÃ:
Client.java
public class Client{
public static void main(String[] args){
Subject sub = new ProxySubject();
sub.
Ïà¹ØÎĵµ£º
Óöµ½¹ýÕâÑùÒ»¸öÇé¿ö£¬ÐèÒªÓÃjava¶Áȡһ¸ö200MµÄÎı¾¸ñʽÎļþ£¬¶øÇÒ»¹ÐèÒª¶ÔÎļþµÄÄÚÈÝ×ö½âÎö£¬½øÐзִʡ£Èç¹ûÓÃJVMµÄĬ
ÈÏÉèÖã¬ÀûÓÃScannerÀàÖ»ÄܶÁ³ö4M´óСÄÚÈÝ£¬ÓÚÊÇÎÒ¾ÍÔÚÍøÉÏËÑË÷£¬µ«ÊÇÍøÉÏûÓÐÕÒµ½Ò»ÆªÎÄÕÂÊÇÎÒËùÐèÒªµÄÄÚÈÝ¡£ÓÚÊÇÎÒÖ»ºÃ·thinking
in
java£¬·¢ÏÖÁËÒ»¸öjavaµÄnioÀïÓиöMappedByteBufferÀ࣬ËûµÄ×÷Ó ......
If the requested address is not a valid virtual memory address (it doesn't belong to any of
the memory segments of the executing process), the page cannot be validated, and
a segmentation fault is generated. This vectors control to another part of the kernel and
usually results in the pro ......
1.³éÏ󣺳éÏó¾ÍÊǺöÂÔÒ»¸öÖ÷ÌâÖÐÓ뵱ǰĿ±êÎ޹صÄÄÇЩ·½Ã棬ÒÔ±ã¸ü³ä·ÖµØ×¢ÒâÓ뵱ǰĿ±êÓйصķ½Ãæ¡£³éÏó²¢²»´òËãÁ˽âÈ«²¿ÎÊÌ⣬¶øÖ»ÊÇÑ¡ÔñÆäÖеÄÒ»²¿·Ö£¬ÔÝʱ²»Óò¿·Öϸ½Ú¡£³éÏó°üÀ¨Á½¸ö·½Ã棬һÊǹý³Ì³éÏ󣬶þÊÇÊý¾Ý³éÏó¡£¹ý³Ì³éÏóÊÇÖ¸ÈκÎÒ»¸öÃ÷È·¶¨Ò幦ÄܵIJÙ×÷¶¼¿É±»Ê¹ÓÃÕß¿´×÷µ¥¸öµÄʵÌå¿´´ý£¬¾¡¹ÜÕâ¸ö²Ù×÷ʵ¼Ê ......
½á¹¹Ä£Ê½£¨££©
Adapter(ÊÊÅäÆ÷)
½«Ò»¸öÀàµÄ½Ó¿Úת»»³É¿Í»§Ï£ÍûµÄÁíÍâÒ»¸ö½Ó¿Ú¡£AdapterģʽʹµÃÔ±¾ÓÉÓÚ½Ó¿Ú²»¼æÈݶø²»ÄÜÒ»Æð¹¤×÷µÄÄÇЩÀà¿ÉÒÔÒ»Æð¹¤×÷¡£
Adapter·ÖΪ2ÖÖ:
ÀàÊÊÅäÆ÷ºÍ¶ÔÏóÊÊÅäÆ÷¡£AdapterºÍAdapteeÖ®¼äÊÇis-a¹ØÏµµÄʱºò£¬ÊôÓÚÀàÊÊÅäÆ÷£¬AdapterºÍAdapteeÖ®¼äÊÇhas-a¹ØÏµµÄʱºò£¬ÊôÓÚ¶ÔÏóÊÊÅäÆ÷¡£ ......
javaÖÐ×Ö·û´®µÄ±àÂë½âÂëÎÊÌâ
1.½«×Ö·û´®×ª»»³ÉbyteÊý×éÔÙ»Ö¸´£º
byte[] getBytes(String charsetName)
String(byte[] bytes, String charsetName)
»ògetBytes()
String(byte[] bytes)
2.ʹÓÃString sun.misc.BASE64Encode.encode(byte[] b)
byte[] String sun.misc.BASE64Decode.decodeBuffer(String str)
½«×Ö·û ......