java¶¯Ì¬´úÀíÀà
Java¶¯Ì¬´úÀíÀàλÓÚjava.lang.reflect°üÏ£¬Ò»°ãÖ÷񻃾¼°µ½ÒÔÏÂÁ½¸öÀࣺ
(1)Interface InvocationHandler£º¸Ã½Ó¿ÚÖнö¶¨ÒåÁËÒ»¸ö·½·¨
§public object invoke(Object obj,Method method, Object[] args)
ÔÚʵ¼ÊʹÓÃʱ£¬µÚÒ»¸ö²ÎÊýobjÒ»°ãÊÇÖ¸´úÀíÀ࣬methodÊDZ»´úÀíµÄ·½·¨£¬ÈçÉÏÀýÖеÄrequest()£¬argsΪ¸Ã·½·¨µÄ²ÎÊýÊý×é¡£ Õâ¸ö³éÏó·½·¨ÔÚ´úÀíÀàÖж¯Ì¬ÊµÏÖ¡£
(2)Proxy£º¸ÃÀ༴Ϊ¶¯Ì¬´úÀíÀ࣬×÷ÓÃÀàËÆÓÚÉÏÀýÖеÄProxySubject£¬ÆäÖÐÖ÷Òª°üº¬ÒÔÏÂÄÚÈÝ
protected Proxy(InvocationHandler h)£º¹¹Ô캯Êý£¬ÓÃÓÚ¸øÄÚ²¿µÄh¸³Öµ¡£
static Class getProxyClass (ClassLoader loader, Class[] interfaces)£º»ñµÃÒ»¸ö´úÀíÀ࣬ÆäÖÐloaderÊÇÀà×°ÔØÆ÷£¬interfacesÊÇÕæÊµÀàËùÓµÓеÄÈ«²¿½Ó¿ÚµÄÊý×é¡£
static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h)£º·µ»Ø´úÀíÀàµÄÒ»¸öʵÀý£¬·µ»ØºóµÄ´úÀíÀà¿ÉÒÔµ±×÷±»´úÀíÀàʹÓÃ(¿ÉʹÓñ»´úÀíÀàµÄÔÚSubject½Ó¿ÚÖÐÉùÃ÷¹ýµÄ·½·¨)
ËùνDynamic ProxyÊÇÕâÑùÒ»ÖÖclass£ºËüÊÇÔÚÔËÐÐʱÉú³ÉµÄclass£¬ÔÚÉú³ÉËüʱÄã±ØÐëÌṩһ×éinterface¸øËü£¬È»ºó¸Ãclass¾ÍÐû³ÆËüʵÏÖÁËÕâЩ interface¡£Ä㵱Ȼ¿ÉÒ԰ѸÃclassµÄʵÀýµ±×÷ÕâЩinterfaceÖеÄÈκÎÒ»¸öÀ´Óᣵ±È»£¬Õâ¸öDynamic ProxyÆäʵ¾ÍÊÇÒ»¸öProxy£¬Ëü²»»áÌæÄã×÷ʵÖÊÐԵŤ×÷£¬ÔÚÉú³ÉËüµÄʵÀýʱÄã±ØÐëÌṩһ¸öhandler£¬ÓÉËü½Ó¹Üʵ¼ÊµÄ¹¤×÷
ÔÚʹÓö¯Ì¬´úÀíÀàʱ£¬ÎÒÃDZØÐëʵÏÖInvocationHandler½Ó¿Ú
²Î¼û³ÌÐò Subject.java
²Î¼û³ÌÐò RealSubject.java
²Î¼û³ÌÐò DynamicSubject.java
²Î¼û³ÌÐò Client.java
package com.langsin.dynamicproxy;
//³éÏó½ÇÉ«(֮ǰÊdzéÏóÀ࣬´Ë´¦Ó¦¸ÄΪ½Ó¿Ú)£º
public interface Subject
{
abstract public void request();
}
package com.langsin.dynamicproxy;
//¾ßÌå½ÇÉ«(¾Ö³¤)
public class RealSubject implements Subject
{
public RealSubject()
{
}
public void request()
{
System.out.println("from real subject.");
}
}
package com.langsin.dynamicproxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
//´úÀí´¦ÀíÆ÷(ÃØÊé)
/**
* ¸Ã´úÀíÀàµÄÄÚ²¿ÊôÐÔΪObjectÀ࣬ʵ¼ÊʹÓÃʱͨ¹ý¸ÃÀàµÄ¹¹Ô캯ÊýDynamicSubject(Object obj)¶ÔÆ
Ïà¹ØÎĵµ£º
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.sql.Timestamp;
import java.util.Arrays;
public class SmallToBig {
private String newFileName;// ÐÂÎļþÃû×Ö
private String filterName;// ¹ýÂ˹æÔòÃû×Ö
  ......
1£®ÈçºÎѧϰ³ÌÐòÉè¼Æ£¿
JAVAÊÇÒ»ÖÖÆ½Ì¨£¬Ò²ÊÇÒ»ÖÖ³ÌÐòÉè¼ÆÓïÑÔ£¬ÈçºÎѧºÃ³ÌÐòÉè¼Æ²»½ö½öÊÊÓÃÓÚJAVA£¬¶ÔC++µÈÆäËû³ÌÐòÉè¼ÆÓïÑÔÒ²Ò»Ñù¹ÜÓá£Óбà³Ì¸ßÊÖÈÏΪ£¬ JAVAÒ²ºÃCÒ²ºÃûʲô·Ö±ð£¬ÄÃÀ´¾ÍÓá£ÎªÊ²Ã´ËûÃÇÄÜ´ïµ½Èç´Ë¾³½ç£¿ÎÒÏëÊÇÒòΪ±à³ÌÓïÑÔÖ®¼äÓй²Í¨Ö®´¦£¬Áì»áÁ˱à³ÌµÄ¾«Ë裬×ÔÈ»Äܹ»×öµ½Ò»Í¨°Ùͨ¡£ÈçºÎѧϰ³ÌÐòÉè¼ÆÀ ......
´úÀíģʽµÄ×÷ÓÃÊÇ£ºÎªÆäËû¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖƶÔÕâ¸ö¶ÔÏóµÄ·ÃÎÊ¡£
ÔÚijЩÇé¿öÏ£¬Ò»¸ö¿Í»§²»Ïë»òÕß²»ÄÜÖ±½ÓÒýÓÃÁíÒ»¸ö¶ÔÏ󣬶ø´úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§¶ËºÍÄ¿±ê¶ÔÏóÖ®¼äÆðµ½ÖнéµÄ×÷ÓÃ
ÀýÈ磺¿ÍÈËÏëÇëÊг¤(ÕæÊǽÇÉ«)³Ô·¹ µ«ÊÇÇë²»¶¯Êг¤ Ö»ºÃÕÒÊг¤ÃØÊé(´úÀí½ÇÉ«) µ«ÊÇ×îºóΪ¿ÍÈË×öÊ嵀 »¹ÊÇ ......
===================================TimerTask=======================================
import java.util.TimerTask;
import java.util.Calendar;
public class MyTask extends TimerTask
{
private ......
Ò»£®POI¼ò½é
Jakarta POI ÊÇapacheµÄ×ÓÏîÄ¿£¬Ä¿±êÊÇ´¦Àíole2¶ÔÏó¡£ËüÌṩÁËÒ»×é²Ù×ÝWindowsÎĵµµÄJava API
Ŀǰ±È½Ï³ÉÊìµÄÊÇHSSF½Ó¿Ú£¬´¦ÀíMS Excel£¨97-2002£©¶ÔÏó¡£Ëü²»ÏóÎÒÃǽö½öÊÇÓÃcsvÉú³ÉµÄûÓиñʽµÄ¿ÉÒÔÓÉExcelת»»µÄ¶«Î÷£¬¶øÊÇÕæÕýµÄExcel¶ÔÏó£¬Äã¿ÉÒÔ¿ØÖÆÒ»Ð©ÊôÐÔÈçsheet,cellµÈµÈ¡£
¶þ£®HSSF¸Å¿ö
......