°¢À­¶¡µÄÉñµÆ
===========================================================
jsp³£ÓõöÄ£¿é£¬Õª
===========================================================
jsp³£ÓõÄÄ£¿é ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.12.07 11:25 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(3206´Î) :: ÆÀÂÛ (59)
===========================================================
JAVA»·¾³ÅäÖôóÈ«
===========================================================

ÕªÒª£ºJAVA»·¾³ÅäÖôóÈ«
ת×Ô: www.java-cn.com

ÎÒ¸ÕѧϰjavaµÄʱºòÒ²±»¸÷ÖÖ»·¾³ÅäÖøãµÃÍ·ÔÎÄÔÕÍ£¬ÏÖÔÚ°Ñ×Ô¼ºÆ½Ê±Óõ½µÄÕûÀíһϣ¬Ï£Íû¸ø´ó¼ÒһЩ°ïÖú¡£±È½Ï¼òµ¥£¬Ï£Íû´ó¼ÒÄÜ¿´¶®¡££¨×îºÃ°´ÕÕÎÒµÄ˳Ðò×°£¬Èç¹û´ó¼Ò¾õµÃÍøÉÏ¿´·ÑÊ£¬ÎÒ°ÑÎĵµ´«µ½ÍøÉϹ©´ó¼ÒÏÂÔØ^_^£©

 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.10.10 10:02 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(1399´Î) :: ÆÀÂÛ (6)
===========================================================
JFreeChartµÄÒ»¸ö¼òµ¥Ó÷¨
===========================================================

Ò»¸ö¼òµ¥µÄÓ÷¨


ÔÚjsp Ò³ÃæÖпÉÒÔ·âװΪһ±êÇ©


public class xxxxChartTag extends TagSupport
{

private static final long serialVersionUID = 1L;
private int width; //ͼ±í¿í¶È
private int height; //ͼ±í¸ß¶È
private String type; //ͼ±íÀàÐÍ
private DataVO datavo; //ͼ±íÊý¾Ý¶ÔÏó
private static final int EVAL_PAGE = 6;
private String attrbuteName; //request¶ÔÏóÃû×Ö
private String chartType; //ͼ±íÏÔʾ·½Ê½2D»ò3D
/**
*
* <p>Discription:[¹¹ÔìÆ÷·½·¨ÃèÊö]</p>
* @coustructor ·½·¨.
*/
public NtasChartTag()
{
super();
width = 790;
height = 460;
attrbuteName = NtasConst.REQUEST_DATAVO_KEY;
chartType="2D";
}
public int doStartTag() throws JspException
{
StringBuffer stringbuffer = new StringBuffer();
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
HttpSession session = request.getSession(true);
datavo = (DataVO) request.getAttribute(attrbuteName);
NTASChartFactory NChartFactory = new NTASChartFactory(datavo, session);
NChartFactory.setPicWidth(width);
NChartFactory.setPicHeight(height);
NChartFactory.setChartstyle(chartType);

try
{
NChartFactory.createNTASChart(type);
}
catch (Exception e1)
{
e1.printStackTrace();
}
String picFileName = NChartFactory.getFileName();
String getPicURL = NChartFactory.getPicURL();
stringbuffer.append( NChartFactory.getChartMapHtml());
stringbuffer.append("<img border="0" width="" + width + "" height="" + height + "" src="" + request.getContextPath()+getPicURL + "" useMap="#" + picFileName + ""/>");
JspWriter out = pageContext.getOut();
try
{
out.println(stringbuffer.toString());
}
catch (IOException e)
{
e.printStackTrace();
}
return EVAL_PAGE;
}
public int getHeight()
{
return height;
}
public String getType()
{
return type;
}
public int getWidth()
{
return width;
}
/ public void setHeight(int i)
{
height = i;
}
public void setType(String string)
{
type = string;
}
public void setWidth(int i)
{
width = i;
}
public String getAttrbuteName()
{
return attrbuteName;
}
public void setAttrbuteName(String string)
{
attrbuteName = string;
}
public String getChartType()
{
return chartType;
}


public void setChartType(String string)
{
this.chartType = string;
}


zzw0598 ·¢±íÓÚ:2005.08.20 10:58 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(34753´Î) :: ÆÀÂÛ (466)
===========================================================
JDBC³£ÓÃÀàºÍ·½·¨
===========================================================
JDBC³£ÓÃÀàºÍ·½·¨
ת×Ô£ºjava-cn
Ô­ÎĵØÖ·£ºhttp://www.java-cn.com/technology/tech/3614.html
 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.07.04 10:20 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(1693´Î) :: ÆÀÂÛ (162)
===========================================================
ÔÚbeanÖÐʹÓÃblobÀàÐÍ
===========================================================

ÔÚCMPʵÌåBEANÖÐʹÓÃBLOBÊý¾ÝÀàÐÍ(תÌû)תÌû??ÔÚOracleÕâÑùµÄ¹ØÏµÊý¾Ý¿âÖУ¬CLOBºÍBLOBÀàÐͱ»ÓÃÀ´´æ·Å´ó¶ÔÏó¡£BOLB±íʾ¶þ½øÖÆ´ó¶ÔÏó£¬ÕâÖÖÊý¾ÝÀàÐÍͨ¹ýÓÃÀ´±£´æÍ¼Æ¬£¬Í¼Ïó£¬ÊÓÆµµÈ¡£CLOB±íʾ×Ö·û´ó¶ÔÏó£¬Äܹ»´æ·Å´óÁ¿»ùÓÚ×Ö·ûµÄÊý¾Ý¡£

JDBC¶¨ÒåjavaÀàÐÍjava.sql.Clob ºÍjava.sql.Blob ¶ÔÓ¦Êý¾Ý¿âÖеÄCLOBºÍBLOBÀàÐÍ¡£È»¶øÕâÁ½ÖÖÀàÐͲ¢²»ÄÜÔÚʵÌåBEANÖÐʹÓã¬ÒòΪÕâÁ½¸öÀàûÓб»ÐòÁл¯£¨Serializable£©¡£Òò´ËÎÒÃDz»ÄÜÔÚCMPʵÌåBEANÖж¨Òåjava.sql.Clob»òjava.sql.BlobÕâÁ½ÖÖÊý¾ÝÀàÐÍ¡£


Èç¹ûÎÒÃÇҪʹÓÃÊý¾Ý¿âµÄBLOB×ֶΣ¬ÎÒÃDZØÐëÔÚʵÌåbeanÖÐÉùÃ÷CMP×Ö¶ÎΪ byte[] ²¢Ó³Éä¸Ã×ֶε½Êý¾Ý¿âµÄBLOB×ֶΡ£Èç¹ûҪʹÓÃCLOB×ֶΣ¬ÎÒÃÇÐèҪʹÓö¨ÒåCMP×Ö¶ÎΪ java.lang.String or char[] ¡£

Ò»¸öENTITYµÄ·¶Àý
ÔÚÒ»¸öÆóÒµÀ´¦ÓÚ°²È«¿¼ÂÇ£¬ÎÒÃÇÒ²ÐíÒª½«Ô±¹¤µÄͼƬ±£´æµ½Êý¾Ý¿âÖеıíÀï¡£ÕâÀïÎÒÃÇʹÓÃEmployeePicture ×÷Ϊ·¶ÀýÀ´´ú±íÔ±¹¤µÄͼƬʵÌå¡£Õâ¸öEmployeePictureBean CMPÓÐÁ½¸öÊôÐÔ empno, picture¡£ picture ×ֶα»¶¨Òå³Ébyte[]ÐÍ ¡£

¸ÃEmployeePictureʵÌåBEAN±»Ó³Éäµ½EMPPICÊý¾Ý±í£¬ picture ÊôÐÔ±»Ó³ÉäΪEMPPIC ±íÖеÄpicture ×ֶΣ¬¸Ãpicture×Ö¶ÎÊǶ¨ÒåΪBLOBÀàÐ͵ġ£

ÏÂÃæÊÇEmployeePictureBean.javaµÄ²¿·ÖºËÐÄ´úÂ룺

public abstract class EmployeePictureBean implements EntityBean{ .... public abstract byte[] getPicture(); public abstract void setPicture(byte[] newPicture); public Long ejbCreate(Long empno, byte[] newPicture) { setEmpno(empno); setPicture(newPicture); return empno; } public void ejbPostCreate(Long empno, byte[] newPicture) { } ...}

Èç¹ûÎÒÃÇʹÓÃOC4J 9.0.4 £¬¾ÍÐèÒªÔÚorion-ejb-jar.xmlÖж¨ÒåʵÌåBEANÊôÐÔµ½Êý¾Ý±í×ֶεÄÓ³Éä¡£Èç¹ûʹÓÃÁËÆäËûJ2EEÈÝÆ÷£¬¾ÍÐèÒªÔÚÏà¹Ø³§É̵IJ¿ÊðÃèÊö·ûÖж¨ÒåO-RÓ³Éä¡£ÏÂÃæÑÝʾÔÚOC4JÖеÄÓ³Éä´úÂ룺

<entity-deployment name="EmployeePicture" data-source="jdbc/OracleDS" table="EMPPIC"> <primkey-mapping> <cmp-field-mapping name="empno" persistence-name="EMPNO" persistence-type="NUMBER(8)"/> </primkey-mapping> <cmp-field-mapping name="empno" persistence-name="EMPNO" persistence-type="NUMBER(8)"/> <cmp-field-mapping name="picture" persistence-name="PICTURE" persistence-type="BLOB"/></entity-deployment>


¿Í»§¶Ë:
CMPʵÌåBEANµÄ¿Í»§¶ËûÓÐÊ²Ã´ÌØ±ðµÄ´¦Àí¡£Î¨Ò»ÐèҪעÒâµÄÊÇÔÚupdateÊý¾Ý±íʱҪʹÓÃBufferedInputStream À´¶ÁÈ¡IMAGEÎļþ£¬µ«ÔÚ¼ìË÷Êý¾Ý±íʱʹÓÃOutputStream ¡£

ÏÂÃæÑÝʾÈçºÎ¶Áȡһ¸öIMAGEÎļþ£¬²¢´´½¨Ò»¸öBEANʵÀý:

// Locate and open the file File imgFile = new File(fileName); long imgFileSize= imgFile.length(); // initialize the byte array byte byteValue[] = new byte[(int)imgFileSize]; // Read the file into the byte array InputStream is = new BufferedInputStream(new FileInputStream(imgFile)); int len = is.read(byteValue); //Add the byte to the entity bean field if(len!=imgFileSize) { System.out.println("Read bytes did not equal file size on directory"); } else { EmployeePictureLocal employeePicture = empHome.create(empNo , byteValue);


½áÂÛ
ÎÒÃDz»ÄÜÔÚCMPʵÌåBEANÖÐÖ±½ÓÓ³Éä java.sql.BlobÀàÐ͵½Êý¾Ý¿âÖеÄBLOB×ֶΡ£¶øÊÇҪʹÓÃbyte[]À´²Ù×÷BLOBÊý¾ÝÀàÐÍ¡£µ«ÊÇÎÒÃÇÒªÖµµÃ×¢ÒâµÄÊÇ£¬Èç¹û´æ´¢µÄÊý¾Ý·Ç³£´ó£¨³¬¹ý25M£©£¬ÄÇôÕâÖÖ·½Ê½µÄ´¦ÀíЧÂʽ«·Ç³£µÍ£¬ÄÇʱֻÄÜ¿¼ÂÇÆäËû¿ÉÑ¡µÄ·½°¸×Ó¡£
ÍêÕû´úÂëµØÖ·£ºhttp://www.oracle.com/technology/tech/java/oc4j/904/how_to/how-to-ejb-cmpblob.zip

http://blog.itpub.net/admin.php?op=resourceInfo&resourceId=6344


zzw0598 ·¢±íÓÚ:2005.07.04 10:12 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(711´Î) :: ÆÀÂÛ (0)
===========================================================
Á¬½ÓOracleÊý¾Ý¿âµÄ¸÷ÖÖoracle JDBCÇý¶¯³ÌÐòµÄϸ½Ú¡£
===========================================================


ÕâЩϸ½Ú°üÀ¨£º
1¡¢µ¼ÈëJDBC°ü
2¡¢×¢²áoracle JDBCÇý¶¯³ÌÐò
3¡¢´ò¿ªÊý¾Ý¿âÁ¬½Ó
4¡¢Ö´ÐÐSQL DMLÓï¾äÔÚÊý¾Ý¿â±íÖлñÈ¡¡¢Ìí¼Ó¡¢Ð޸ĺÍɾ³ýÐÐ

 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.05.13 16:19 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(1039´Î) :: ÆÀÂÛ (0)
===========================================================
³£ÓÃjdbcµÄд·¨
===========================================================
  1. MySQL(http://www.mysql.com)mysql-connector-java-2.0.14-bin.jar
            Class.forName( "org.gjt.mm.mysql.Driver" );
            cn = DriverManager.getConnection(
            "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd
            );

            2. PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jar
            Class.forName( "org.postgresql.Driver" );
            cn = DriverManager.getConnection(
            "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd
            );

            3.
            Oracle(http://www.oracle.com/ip/deploy/database/oracle9i/)classes12.zip

            Class.forName( "oracle.jdbc.driver.OracleDriver" );
            cn = DriverManager.getConnection(
            "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

            4. Sybase(http://jtds.sourceforge.net)jconn2.jar
            Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
            cn = DriverManager.getConnection(
            "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );
            //(Default-Username/Password: "dba"/"sql")

            5. Microsoft SQLServer(http://jtds.sourceforge.net)
            Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
            cn = DriverManager.getConnection(
            "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd
            );

            6. Microsoft SQLServer(http://www.microsoft.com)
            Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
            cn = DriverManager.getConnection(
            "jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master",
            sUsr, sPwd );

            7. ODBC
            Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
            Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn,
            sUsr, sPwd );

            8.DB2
            Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
            String url="jdbc:db2://192.9.200.108:6789/SAMPLE"
            cn = DriverManager.getConnection( url, sUsr, sPwd );


zzw0598 ·¢±íÓÚ:2005.05.13 15:46 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(464´Î) :: ÆÀÂÛ (0)
===========================================================
JFreeChartµÄÀý×Ó
===========================================================

ÏȽéÉÜÒ»¸ö¼òµ¥µÄ²»ÄÜÔÙ¼òµ¥µÄÀý×Ó£¬Í¼Æ¬Öеĸ÷ÀàÊôÐÔ¶¼²ÉÓÃĬÈÏÖµ

 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.05.13 15:43 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(728´Î) :: ÆÀÂÛ (0)
===========================================================
tomcat ÖÐÅäÖÃjstl
===========================================================

ѧϰjspÖУ¬¸ÕºÃ¿´µ½Õâһƪ£¬×ªÔØ

 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.04.27 09:09 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(910´Î) :: ÆÀÂÛ (1)
===========================================================
DES ¼Ó½âÃܵķâ×°ºÍ ʹÓõÄÀý×Ó£¨×ª£©
===========================================================
DES ¼Ó½âÃܵķâ×°ºÍ ʹÓõÄÀý×Ó£¨×ª£©
ת×Ôjava-cn
 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.04.22 22:52 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(631´Î) :: ÆÀÂÛ (0)
===========================================================
J2EEÓ¦ÓÃÖÐÓëOracleÊý¾Ý¿âµÄÁ¬½Ó£¨×ª£©
===========================================================
ÔÚJ2EEÓ¦ÓóÌÐò¿ª·¢ÖУ¬Ó¦ÓóÌÐòÓëÊý¾Ý¿âÁ¬½ÓµÄ½¨Á¢ÊÇÎÒÃǾ­³£Óöµ½µÄÎÊÌâÖ®Ò»¡£ÔÚÕâÀïÎÒÖ÷Ҫ̸̸ÔÚ±¾µØÓ¦ÓóÌÐòÖÐͨ¹ýOCI·½Ê½¡¢thin·½Ê½ºÍJdbcOdbcÇÅ·½Ê½Á¬½ÓOracleÊý¾Ý¿â£¬ÔÚiPlanet Application Server 6.5ºÍSun Java System Application Server 7ÖжÔOracleÊý¾Ý¿âÁ¬½Ó³ØµÄÅäÖÃÒÔ¼°Ó¦ÓÃÖÐÈçºÎ´ÓÁ¬½Ó³ØÖлñµÃÁ¬½Ó

 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.04.22 22:43 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(473´Î) :: ÆÀÂÛ (0)
===========================================================
Éú³ÉÒ»¸öjava±àÖÆµÄ¿ÉÖ´ÐÐÎļþ
===========================================================
 
Éú³ÉÒ»¸öjava±àÖÆµÄ¿ÉÖ´ÐÐÎļþ

½«java±àÖ¯³É.classºó£¬Èç¹ûÖ»ÊÇÓÃjava ÃüÁîÀ´Ö´ÐÐ×ܾõµÃ²»ÊÇÌ«¹ýñ«£¬ÕÒ¸ö°ì·¨Éú³ÉÏñexeÎļþÒ»ÑùÓÃÊó±êË«»÷±ã¿ÉÖ´ÐеÄÎļþ£¬Ó¦¸ÃÊǺÜÓÐȤµÄ°¡¡£±¾ÎÄÖ÷Òª½éÉÜÁËÒ»ÖÖÉú³Éjava¿ÉÖ´ÐгÌÐòµÄ·½·¨¡£

ÕâÀïÎÒÓÃÁËÒ»¸öÃû×Ö½Ð×öexe4jµÄÃâ·ÑСÈí¼þ£¬¸Ð¾õ²»´í¡£ÏÂÃæÎÒ½«ÎÒ°ÑjavaµÄ.classÎļþÉú³É¿ÉÖ´ÐÐÎļþµÄÁ÷³Ì½²Ò»Ï¡£

 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.04.19 09:56 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(1019´Î) :: ÆÀÂÛ (2)
===========================================================
strutsÉÏ´«Îļþ
===========================================================

strutsÉÏ´«ÎļþµÄÒ»¸öʾÀý

ÕâÀïµÄÊý¾Ý¿âÁ¬½ÓµÈ¶¼Òª¶ÁÕß×Ô¼ºÅäÖÃ,ÎÒÃÇÔÚ¿ª·¢Õâ¸öÊÔÑéʱµÄ»·¾³Îª
weblogic+jbuilder+oracle ¡¡

ת×Ôhttp://www.java-cn.com/technology/technology_detail.jsp?id=3455

×Ô¼º»¹Ã»Ê±¼ä¿´£¬Ïȱ£´æ

 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.04.09 18:02 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(628´Î) :: ÆÀÂÛ (0)
===========================================================
Java³éÈ¡Word£¬PDFµÄËÄÖÖÎäÆ÷
===========================================================
 
Java³éÈ¡Word£¬PDFµÄËÄÖÖÎäÆ÷

Java³éÈ¡Word£¬PDFµÄËÄÖÖÎäÆ÷
×÷Õߣºchris À´×Ô£ºIBM
ת×Ôhttp://www.java-cn.com/technology/technology_detail.jsp?id=3445

 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.04.09 13:01 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(506´Î) :: ÆÀÂÛ (0)
===========================================================
TomcatÈ«¹¥ÂÔ
===========================================================

Ëæ×ÅjavaµÄÁ÷ÐУ¬ÆäÔÚwebÉϵÄÓ¦ÓÃÒ²Ô½À´Ô½¹ã£¬tomcat×÷Ϊһ¸ö¿ªÔ´µÄservletÈÝÆ÷£¬Ó¦ÓÃǰ¾°Ô½À´Ô½¹ã£¬±¾ÎĽ«ÏòÄã½²ÊötomcatµÄһЩ֪ʶ¡£
Ò»£º¼ò½é
tomcatÊÇjakartaÏîÄ¿ÖеÄÒ»¸öÖØÒªµÄ×ÓÏîÄ¿£¬Æä±»JavaWorldÔÓÖ¾µÄ±à¼­Ñ¡Îª2001Äê¶È×î¾ß´´ÐµÄjava²úÆ·(Most Innovative Java Product)£¬Í¬Ê±ËüÓÖÊÇsun¹«Ë¾¹Ù·½ÍƼöµÄservletºÍjspÈÝÆ÷(¾ßÌå¿ÉÒÔ¼ûhttp://java.sun.com/products/jsp/tomcat/)£¬Òò´ËÆäÔ½À´Ô½¶àµÄÊܵ½Èí¼þ¹«Ë¾ºÍ¿ª·¢ÈËÔ±µÄϲ°®¡£servletºÍjspµÄ×îй淶¶¼¿ÉÒÔÔÚtomcatµÄа汾Öеõ½ÊµÏÖ¡£
 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.04.01 16:27 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(825´Î) :: ÆÀÂÛ (0)
===========================================================
jsp¶ÔÏóµÄ¼òµ¥½éÉÜ
===========================================================
jspµÄ¶ÔÏó Out£¬Request£¬Session£¬ApplicationµÄ¼òµ¥½éÉÜ£¬ÒÔ¼°Ò»¸ö¼ÆÊýÆ÷µÄÀý×Ó£¬×îºóÊÇResignµÄ¼òµ¥½éÉÜ¡£ ÊʺÏÈëÃÅÕß
 ²é¿´È«ÎÄ
zzw0598 ·¢±íÓÚ:2005.04.01 09:35 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(21573´Î) :: ÆÀÂÛ (747)
===========================================================
JSPÎļþ²Ù×÷´óÈ«
===========================================================

ÒÔϵÄÎļþ²Ù×÷£¬¶¼¿ÉÒÔÖ±½Ócopyµ½jspÎļþÀïÖ´ÐС£ºÜÓÐÓô¦µÄ¡£
 
 
ÎļþµÄ½¨Á¢/¼ì²éÓëɾ³ý
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>ÎļþµÄ½¨Á¢¡¢¼ì²éÓëɾ³ý</title>
</head>
<body>
<%
String path=request.getRealPath("");
//out.println(path);
File f=new File(path,"File.txt");
//out.println(f);
//out.println(f.exists());
if(f.exists()){//¼ì²éFile.txtÊÇ·ñ´æÔÚ
f.delete();//ɾ³ýFile.txtÎļþ
out.println(path + "File.txt ´æÔÚ£¬ÒÑɾ³ý¡£");
}else{
f.createNewFile();//ÔÚµ±Ç°Ä¿Â¼Ï½¨Á¢Ò»¸öÃûΪFile.txtµÄÎļþ
out.println(path + "File.txt ²»´æÔÚ£¬Òѽ¨Á¢¡£");//Êä³öĿǰËùÔÚµÄĿ¼·¾¶
}
%>
 
Ŀ¼µÄ½¨Á¢/¼ì²éÓëɾ³ý
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>Ŀ¼µÄ½¨Á¢/¼ì²éÓëɾ³ý</title>
</head>
<body>
<%
String path=request.getRealPath("");
path=path + "Sub";//½«Òª½¨Á¢µÄĿ¼·¾¶
File d=new File(path);//½¨Á¢´ú±íSubĿ¼µÄFile¶ÔÏ󣬲¢µÃµ½ËüµÄÒ»¸öÒýÓÃ
if(d.exists()){//¼ì²éSubĿ¼ÊÇ·ñ´æÔÚ
d.delete();
out.println("SubĿ¼´æÔÚ£¬ÒÑɾ³ý");
}else{
d.mkdir();//½¨Á¢SubĿ¼
out.println("SubĿ¼²»´æÔÚ£¬Òѽ¨Á¢");
}
%>
</body>
</html>
 
 
ÈçºÎÔÚJSPÖд¦ÀíÐéÄâĿ¼
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>JSPÖÐÈçºÎ´¦ÀíÐéÄâĿ¼</title>
</head>
<body>
È¡µÃÐéÄâĿ¼¶ÔÓ¦µÄ´ÅÅÌ·¾¶<br>
WebÕ¾µãÖ÷Ŀ¼µÄλÖÃΪ<font color=#ff0000><%=request.getRealPath("/")%></font><br>
JSPÍøÒ³ËùÔÚµÄĿ¼λÖÃ<font color=#ff0000><%=request.getRealPath("./")%></font><br>
JSPÍøÒ³ËùÔÚĿ¼ÉÏÒ»²ãĿ¼µÄλÖÃ<font color=#ff0000><%=request.getRealPath("../")%></font><br>
</body>
</html>
 
 
ÎļþÊôÐÔµÄÈ¡µÃ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.Date,java.io.*"%>
<html>
<head>
<title>ÎļþÊôÐÔµÄÈ¡µÃ</title>
</head>
<body>
<%
String path=request.getRealPath("/");
File f=new File(path,"ReadData.txt");
if(f.exists()){
%>
<%=f.getName()%>µÄÊôÐÔÈçÏ£º<br><br>
Îļþ³¤¶ÈΪ£º<%=f.length()%>
<%=f.isFile()?"ÊÇÎļþ":"²»ÊÇÎļþ"%><br>
<%=f.isDirectory()?"ÊÇĿ¼":"²»ÊÇĿ¼"%><br>
<%=f.canRead()?"¿É¶ÁÈ¡":"²»¿É¶ÁÈ¡"%><br>
<%=f.canWrite()?"¿ÉдÈë":"²»¿ÉдÈë"%><br>
<%=f.isHidden()?"ÊÇÒþ²ØÎļþ":"²»ÊÇÒþ²ØÎļþ"%><br>
ÎļþµÄ×îºóÐÞ¸ÄÈÕÆÚΪ£º<%=new Date(f.lastModified())%><br>
<%
}else{
f.createNewFile();//ÔÚµ±Ç°Ä¿Â¼Ï½¨Á¢Ò»¸öÃûΪReaData.txtµÄÎļþ
%> 
<%=f.getName()%>µÄÊôÐÔÈçÏ£º<br><br>
Îļþ³¤¶ÈΪ£º<%=f.length()%>
<%=f.isFile()?"ÊÇÎļþ":"²»ÊÇÎļþ"%><br>
<%=f.isDirectory()?"ÊÇĿ¼":"²»ÊÇĿ¼"%><br>
<%=f.canRead()?"¿É¶ÁÈ¡":"²»¿É¶ÁÈ¡"%><br>
<%=f.canWrite()?"¿ÉдÈë":"²»¿ÉдÈë"%><br>
<%=f.isHidden()?"ÊÇÒþ²ØÎļþ":"²»ÊÇÒþ²ØÎļþ"%><br>
ÎļþµÄ×îºóÐÞ¸ÄÈÕÆÚΪ£º<%=new Date(f.lastModified())%><br>
<%
}
%>
</body>
</html>
 
 
È¡³öĿ¼ÖÐÎļþµÄ·½·¨
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>È¡³öĿ¼ÖÐÎļþµÄ·½·¨--ÁгöĿ¼ÖеÄÎļþ</title>
</head>
<body>
<%
String path=request.getRealPath("/");
File d=new File(path);//½¨Á¢µ±Ç°Ä¿Â¼ÖÐÎļþµÄFile¶ÔÏó
File list[]=d.listFiles();//È¡µÃ´ú±íĿ¼ÖÐËùÓÐÎļþµÄFile¶ÔÏóÊý×é
out.println("<font color=#ff0000>" + path + "Ŀ¼ÏµÄÎļþ£º</font><br>");
for(int i=0;i<list.length;i++){
if(list[i].isFile()){
out.println(list[i].getName() + "<br>");
}
}
out.println("<br><font color=#ff0000>" + path + "Ŀ¼ÏµÄĿ¼£º</font><br>");
for(int i=0;i<list.length;i++){
if(list[i].isDirectory()){
out.println(list[i].getName() + "<br>");
}
}
%>
</body>
</html>
 
 
ÅжÏÊÇ·ñΪ¿Õ°×Îļþ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>ÅжÏÊÇ·ñΪ¿Õ°×Îļþ</title>
</head>
<body>
<%
String path=request.getRealPath("/");
out.println(path);
FileReader fr=new FileReader(path + "AtEnd.txt");//½¨Á¢FileReader¶ÔÏ󣬲¢ÊµÀý»¯Îªfr
//¶ÔFileReaderÀàÉú³ÉµÄ¶ÔÏóʹÓÃread()·½·¨£¬¿ÉÒÔ´Ó×Ö·ûÁ÷ÖжÁÈ¡ÏÂÒ»¸ö×Ö·û¡£
if(fr.read()==-1)//ÅжÏÊÇ·ñÒѶÁµ½ÎļþµÄ½áβ
{
out.print("AtEnd.txtÎļþÖÐûÓÐÊý¾Ý<br>");
}else{
out.println("AtEnd.txtÎļþÖÐÓÐÊý¾Ý");
}
fr.close();
%>
</body>
</html>
 
 
¶ÁÈ¡ËùÓеÄÎļþÊý¾Ý
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*,java.lang.*"%>
<html>
<head>
<title>¶ÁÈ¡ËùÓеÄÎļþÊý¾Ý</title>
</head>
<body>
<%
String path=request.getRealPath("");
FileReader fr=new FileReader(path + "ReadData.txt");
//¹Ø¼üÔÚÓÚ¶ÁÈ¡¹ý³ÌÖУ¬ÒªÅжÏËù¶ÁÈ¡µÄ×Ö·ûÊÇ·ñÒѾ­µ½ÁËÎļþµÄĩ⣬²¢ÇÒÕâ¸ö×Ö·ûÊDz»ÊÇÎļþÖеĶÏÐзû£¬¼´ÅжϸÃ×Ö·ûÖµÊÇ·ñΪ13¡£
int c=fr.read();//´ÓÎļþÖжÁȡһ¸ö×Ö·û
//ÅжÏÊÇ·ñÒѶÁµ½Îļþ½áβ
while(c!=-1){
out.print((char)c);//Êä³ö¶Áµ½µÄÊý¾Ý
c=fr.read();//´ÓÎļþÖмÌÐø¶ÁÈ¡Êý¾Ý
if(c==13){//ÅжÏÊÇ·ñΪ¶ÏÐÐ×Ö·û
out.print("<br>");//Êä³ö·ÖÐбêÇ©
fr.skip(1);//ÂÔ¹ýÒ»¸ö×Ö·û
//c=fr.read();//¶Áȡһ¸ö×Ö·û
}
}
fr.close();
%>
</body>
</html>
 
 
Ò»ÐÐÒ»ÐжÁÈ¡Êý¾Ý
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>Îļþ¶ÁÈ¡</title>
</head>
<body>
<%
String path=request.getRealPath("");//È¡µÃµ±Ç°Ä¿Â¼µÄ·¾¶
FileReader fr=new FileReader(path + "fileinct.txt");//½¨Á¢FileReader¶ÔÏ󣬲¢ÊµÀý»¯Îªfr
BufferedReader br=new BufferedReader(fr);//½¨Á¢BufferedReader¶ÔÏ󣬲¢ÊµÀý»¯Îªbr
String Line=br.readLine();//´ÓÎļþ¶ÁȡһÐÐ×Ö·û´®
//Åж϶ÁÈ¡µ½µÄ×Ö·û´®ÊÇ·ñ²»Îª¿Õ
while(Line!=null){
out.println(Line + "<br>");//Êä³ö´ÓÎļþÖжÁÈ¡µÄÊý¾Ý
Line=br.readLine();//´ÓÎļþÖмÌÐø¶ÁȡһÐÐÊý¾Ý
}
br.close();//¹Ø±ÕBufferedReader¶ÔÏó
fr.close();//¹Ø±ÕÎļþ
%>
</body>
</html>
 
 
ÂÔ¹ýÎļþÖеÄ×Ö·û²»¶ÁÈ¡
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>ÂÔ¹ý×Ö½Ú²»¶ÁÈ¡</title>
</head>
<body>
<%
String path=request.getRealPath("");
FileReader fr=new FileReader(path + "ReadData.txt");
fr.skip(2);//Ìø¹ý2¸ö×Ö½Ú
int c=fr.read();//¶Áȡһ¸ö×Ö½Ú
while(c!=-1){
out.print((char)c);
c=fr.read();
}
fr.close();
%>
</body>
</html>
 
 
½«Êý¾ÝдÈëÎļþ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>½«Êý¾ÝдÈëÎļþ</title>
</head>
<body>
<%
String path=request.getRealPath("");
FileWriter fw=new FileWriter(path + "WriteData.txt");//½¨Á¢FileWriter¶ÔÏ󣬲¢ÊµÀý»¯fw
//½«×Ö·û´®Ð´ÈëÎļþ
fw.write("´ó¼ÒºÃ£¡");
fw.write("±¾ÊéÊÇ¡¶JSP±à³Ì¼¼ÇÉ¡·");
fw.write("Çë¶à¶àÖ¸½Ì£¡");
fw.write("email:stride@sina.com");
fw.close();
 
FileReader fr=new FileReader(path + "WriteData.txt");
BufferedReader br=new BufferedReader(fr);//½¨Á¢BufferedReader¶ÔÏ󣬲¢ÊµÀý»¯Îªbr
String Line=br.readLine();
//¶ÁȡһÐÐÊý¾Ý
out.println(Line + "<br>");
br.close();//¹Ø±ÕBufferedReader¶ÔÏó
fr.close();
%>
</body>
</html>
 
 
½«Ð´ÈëÎļþµÄÊý¾Ý·ÖÐÐ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>½«Ð´ÈëÎļþµÄÊý¾Ý·ÖÐÐ</title>
</head>
<body>
<%
String path=request.getRealPath("");
FileWriter fw=new FileWriter(path + "WriteData.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write("´ó¼ÒºÃ£¡");
bw.write("±¾ÊéÊÇ¡¶JSP±à³Ì¼¼ÇÉ¡·¡£");
bw.newLine();//¶ÏÐÐ
bw.write("Çë¶à¶àÖ¸½Ì£¡");
bw.newLine();//¶ÏÐÐ
bw.write("email: stride@sina.com");
bw.flush();//½«Êý¾Ý¸üÐÂÖÁÎļþ
fw.close();//¹Ø±ÕÎļþÁ÷
out.println("дÈëÎļþÄÚÈÝΪ£º<br>");
FileReader fr=new FileReader(path + "WriteData.txt");
BufferedReader br=new BufferedReader(fr);
String Line=br.readLine();//¶ÁȡһÐÐÊý¾Ý
while(Line!=null){
out.println(Line + "<br>");
Line=br.readLine();
}
fr.close();
%>
</body>
</html>
 
 
ÈçºÎ½«Êý¾Ý×·¼ÓдÈëµ½Îļþ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>½«Ð´ÈëÎļþµÄÊý¾Ý·ÖÐÐ</title>
</head>
<body>
<%
String path=request.getRealPath("");
RandomAccessFile rf=new RandomAccessFile(path + "WriteData.txt","rw");//¶¨ÒåÒ»¸öÀàRandomAccessFileµÄ¶ÔÏ󣬲¢ÊµÀý»¯
rf.seek(rf.length());//½«Ö¸ÕëÒÆ¶¯µ½Îļþĩβ
rf.writeBytes("
Append a line to the file!");
rf.close();//¹Ø±ÕÎļþÁ÷
out.println("дÈëÎļþÄÚÈÝΪ£º<br>");
FileReader fr=new FileReader(path + "WriteData.txt");
BufferedReader br=new BufferedReader(fr);//¶ÁÈ¡ÎļþµÄBufferedRead¶ÔÏó
String Line=br.readLine();
while(Line!=null){
out.println(Line + "<br>");
Line=br.readLine();
}
fr.close();//¹Ø±ÕÎļþ
%>
</body>
</html><B>
 
 


zzw0598 ·¢±íÓÚ:2005.03.31 14:36 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(405´Î) :: ÆÀÂÛ (0)
===========================================================
×·MMÓëÉè¼ÆÄ£Ê½
===========================================================
 
×·MMÓëÉè¼ÆÄ£Ê½

ÔÚCSDN¿´¼ûÁËÕâÆªÎÄÕ£¬×÷ÕßÒÔÇáËɵÄÓïÑÔ±ÈÓ÷ÁËjavaµÄ32ÖÖģʽ£¬ÓÐºÜºÃµÄÆô·¢×÷Ó㬵«¿ÉϧûÓиø³ö¾ßÌåµÄÒâ˼£¬ÎÒ¾ÍÔÚºó±ß¼ÓÉÏÁË£º£©ÕâЩ¶¼ÊÇ×î¼òµ¥µÄ½éÉÜ£¬ÒªÑ§Ï°µÄ»°½¨ÒéÄ㿴һϡ¶javaÓëģʽ¡·Õâ±¾Êé¡£

????´´½¨ÐÍģʽ

????1¡¢FACTORY?×·MMÉÙ²»ÁËÇë³Ô·¹ÁË£¬Âóµ±À͵靈áºÍ¿ÏµÂ»ùµÄ¼¦³á¶¼ÊÇMM°®³ÔµÄ¶«Î÷£¬ËäÈ»¿ÚζÓÐËù²»Í¬£¬µ«²»¹ÜÄã´øMMÈ¥Âóµ±ÀÍ»ò¿ÏµÂ»ù£¬Ö»¹ÜÏò·þÎñԱ˵¡°À´Ëĸö¼¦³á¡±¾ÍÐÐÁË¡£Âóµ±ÀͺͿϵ»ù¾ÍÊÇÉú²ú¼¦³áµÄFactory

¡¡¡¡¹¤³§Ä£Ê½£º¿Í»§ÀàºÍ¹¤³§Àà·Ö¿ª¡£Ïû·ÑÕßÈκÎʱºòÐèҪijÖÖ²úÆ·£¬Ö»ÐèÏò¹¤³§ÇëÇó¼´¿É¡£Ïû·ÑÕßÎÞÐëÐ޸ľͿÉÒÔ½ÓÄÉвúÆ·¡£È±µãÊǵ±²úÆ·ÐÞ¸Äʱ£¬¹¤³§ÀàÒ²Òª×öÏàÓ¦µÄÐ޸ġ£È磺ÈçºÎ´´½¨¼°ÈçºÎÏò¿Í»§¶ËÌṩ¡£

????2¡¢BUILDER?MM×î°®ÌýµÄ¾ÍÊÇ¡°ÎÒ°®Ä㡱Õâ¾ä»°ÁË£¬¼ûµ½²»Í¬µØ·½µÄMM,ÒªÄܹ»ÓÃËýÃǵķ½ÑÔ¸úËý˵Õâ¾ä»°Å¶£¬ÎÒÓÐÒ»¸ö¶àÖÖÓïÑÔ·­Òë»ú£¬ÉÏÃæÃ¿ÖÖÓïÑÔ¶¼ÓÐÒ»¸ö°´¼ü£¬¼ûµ½MMÎÒÖ»Òª°´¶ÔÓ¦µÄ¼ü£¬Ëü¾ÍÄܹ»ÓÃÏàÓ¦µÄÓïÑÔ˵³ö¡°ÎÒ°®Ä㡱Õâ¾ä»°ÁË£¬¹úÍâµÄMMÒ²¿ÉÒÔÇáËɸãµà£¬Õâ¾ÍÊÇÎҵġ°ÎÒ°®Ä㡱builder¡££¨ÕâÒ»¶¨±ÈÃÀ¾üÔÚÒÁÀ­¿ËÓõķ­Òë»úºÃÂô£©

¡¡¡¡½¨Ôìģʽ£º½«²úÆ·µÄÄÚ²¿±íÏóºÍ²úÆ·µÄÉú³É¹ý³Ì·Ö¸î¿ªÀ´£¬´Ó¶øÊ¹Ò»¸ö½¨Ôì¹ý³ÌÉú³É¾ßÓв»Í¬µÄÄÚ²¿±íÏóµÄ²úÆ·¶ÔÏó¡£½¨ÔìģʽʹµÃ²úÆ·ÄÚ²¿±íÏó¿ÉÒÔ¶ÀÁ¢µÄ±ä»¯£¬¿Í»§²»±ØÖªµÀ²úÆ·ÄÚ²¿×é³ÉµÄϸ½Ú¡£½¨Ôìģʽ¿ÉÒÔÇ¿ÖÆÊµÐÐÒ»ÖÖ·Ö²½Öè½øÐеĽ¨Ôì¹ý³Ì¡£

????3¡¢FACTORY METHOD?ÇëMMÈ¥Âóµ±ÀͳԺº±¤£¬²»Í¬µÄMMÓв»Í¬µÄ¿Úζ£¬ÒªÃ¿¸ö¶¼¼ÇסÊÇÒ»¼þ·³È˵ÄÊÂÇ飬ÎÒÒ»°ã²ÉÓÃFactory Methodģʽ£¬´ø×ÅMMµ½·þÎñÔ±ÄǶù£¬Ëµ¡°ÒªÒ»¸öºº±¤¡±£¬¾ßÌåҪʲôÑùµÄºº±¤ÄØ£¬ÈÃMMÖ±½Ó¸ú·þÎñԱ˵¾ÍÐÐÁË¡£

¡¡¡¡¹¤³§·½·¨Ä£Ê½£ººËÐŤ³§À಻ÔÙ¸ºÔðËùÓвúÆ·µÄ´´½¨£¬¶øÊǽ«¾ßÌå´´½¨µÄ¹¤×÷½»¸ø×ÓÀàÈ¥×ö£¬³ÉΪһ¸ö³éÏ󹤳§½ÇÉ«£¬½ö¸ºÔð¸ø³ö¾ßÌ幤³§Àà±ØÐëʵÏֵĽӿڣ¬¶ø²»½Ó´¥ÄÄÒ»¸ö²úÆ·ÀàÓ¦µ±±»ÊµÀý»¯ÕâÖÖϸ½Ú¡£

????4¡¢PROTOTYPE?¸úMMÓÃQQÁÄÌ죬һ¶¨ÒªËµÐ©ÉîÇéµÄ»°ÓïÁË£¬ÎÒËѼ¯Á˺öàÈâÂéµÄÇé»°£¬ÐèҪʱֻҪcopy³öÀ´·Åµ½QQÀïÃæ¾ÍÐÐÁË£¬Õâ¾ÍÊÇÎÒµÄÇé»°prototypeÁË¡££¨100¿éǮһ·Ý£¬ÄãÒª²»Òª£©

¡¡¡¡Ô­Ê¼Ä£ÐÍģʽ£ºÍ¨¹ý¸ø³öÒ»¸öÔ­ÐͶÔÏóÀ´Ö¸Ã÷ËùÒª´´½¨µÄ¶ÔÏóµÄÀàÐÍ£¬È»ºóÓø´ÖÆÕâ¸öÔ­ÐͶÔÏóµÄ·½·¨´´½¨³ö¸ü¶àͬÀàÐ͵ĶÔÏó¡£Ô­Ê¼Ä£ÐÍģʽÔÊÐí¶¯Ì¬µÄÔö¼Ó»ò¼õÉÙ²úÆ·À࣬²úÆ·À಻ÐèÒª·ÇµÃÓÐÈκÎÊÂÏÈÈ·¶¨µÄµÈ¼¶½á¹¹£¬Ô­Ê¼Ä£ÐÍģʽÊÊÓÃÓÚÈκεĵȼ¶½á¹¹¡£È±µãÊÇÿһ¸öÀà¶¼±ØÐëÅ䱸һ¸ö¿Ë¡·½·¨¡£

????5¡¢SINGLETON?°³ÓÐ6¸öƯÁÁµÄÀÏÆÅ£¬ËýÃǵÄÀϹ«¶¼ÊÇÎÒ£¬ÎÒ¾ÍÊÇÎÒÃǼÒÀïµÄÀϹ«Sigleton£¬ËýÃÇֻҪ˵µÀ¡°ÀϹ«¡±£¬¶¼ÊÇÖ¸µÄͬһ¸öÈË£¬ÄǾÍÊÇÎÒ(¸Õ²Å×öÁ˸öÃÎÀ²£¬ÄÄÓÐÕâôºÃµÄÊÂ)

¡¡¡¡µ¥Àýģʽ£ºµ¥Àýģʽȷ±£Ä³Ò»¸öÀàÖ»ÓÐÒ»¸öʵÀý£¬¶øÇÒ×ÔÐÐʵÀý»¯²¢ÏòÕû¸öϵͳÌṩÕâ¸öʵÀýµ¥Àýģʽ¡£µ¥ÀýģʽֻӦÔÚÓÐÕæÕýµÄ¡°µ¥Ò»ÊµÀý¡±µÄÐèÇóʱ²Å¿ÉʹÓá£


????½á¹¹ÐÍģʽ

????6¡¢ADAPTER?ÔÚÅóÓѾۻáÉÏÅöµ½ÁËÒ»¸öÃÀÅ®Sarah£¬´ÓÏã¸ÛÀ´µÄ£¬¿ÉÎÒ²»»á˵ÔÁÓËý²»»á˵ÆÕͨ»°£¬Ö»ºÃÇóÖúÓÚÎÒµÄÅóÓÑkentÁË£¬Ëû×÷ΪÎÒºÍSarahÖ®¼äµÄAdapter£¬ÈÃÎÒºÍSarah¿ÉÒÔÏ໥½»Ì¸ÁË(Ò²²»ÖªµÀËû»á²»»áË£ÎÒ)

¡¡¡¡ÊÊÅäÆ÷£¨±äѹÆ÷£©Ä£Ê½£º°ÑÒ»¸öÀàµÄ½Ó¿Ú±ä»»³É¿Í»§¶ËËùÆÚ´ýµÄÁíÒ»ÖÖ½Ó¿Ú£¬´Ó¶øÊ¹Ô­±¾Òò½Ó¿ÚÔ­Òò²»Æ¥Åä¶øÎÞ·¨Ò»Æð¹¤×÷µÄÁ½¸öÀàÄܹ»Ò»Æð¹¤×÷¡£ÊÊÅäÀà¿ÉÒÔ¸ù¾Ý²ÎÊý·µ»¹Ò»¸öºÏÊʵÄʵÀý¸ø¿Í»§¶Ë¡£

????7¡¢BRIDGE?ÔçÉÏÅöµ½MM£¬ÒªËµÔçÉϺã¬ÍíÉÏÅöµ½MM£¬ÒªËµÍíÉϺã»Åöµ½MM´©Á˼þÐÂÒ·þ£¬ÒªËµÄãµÄÒ·þºÃƯÁÁŶ£¬Åöµ½MMÐÂ×öµÄ·¢ÐÍ£¬ÒªËµÄãµÄÍ··¢ºÃƯÁÁŶ¡£²»ÒªÎÊÎÒ¡°ÔçÉÏÅöµ½MMÐÂ×öÁ˸ö·¢ÐÍÔõô˵¡±ÕâÖÖÎÊÌ⣬×Ô¼ºÓÃBRIDGE×éºÏһϲ»¾ÍÐÐÁË

¡¡¡¡ÇÅÁºÄ£Ê½£º½«³éÏó»¯ÓëʵÏÖ»¯ÍÑñʹµÃ¶þÕß¿ÉÒÔ¶ÀÁ¢µÄ±ä»¯£¬Ò²¾ÍÊÇ˵½«ËûÃÇÖ®¼äµÄÇ¿¹ØÁª±ä³ÉÈõ¹ØÁª£¬Ò²¾ÍÊÇÖ¸ÔÚÒ»¸öÈí¼þϵͳµÄ³éÏ󻯺ÍʵÏÖ»¯Ö®¼äʹÓÃ×éºÏ/¾ÛºÏ¹ØÏµ¶ø²»ÊǼ̳йØÏµ£¬´Ó¶øÊ¹Á½Õß¿ÉÒÔ¶ÀÁ¢µÄ±ä»¯¡£

????8¡¢COMPOSITE?Mary½ñÌì¹ýÉúÈÕ¡£¡°ÎÒ¹ýÉúÈÕ£¬ÄãÒªËÍÎÒÒ»¼þÀñÎï¡£¡±¡°àÅ£¬ºÃ°É£¬È¥É̵꣬Äã×Ô¼ºÌô¡£¡±¡°Õâ¼þTÐôͦƯÁÁ£¬Âò£¬ÕâÌõȹ×Ӻÿ´£¬Âò£¬Õâ¸ö°üÒ²²»´í£¬Âò¡£¡±¡°Î¹£¬ÂòÁËÈý¼þÁËѽ£¬ÎÒÖ»´ðÓ¦ËÍÒ»¼þÀñÎïµÄŶ¡£¡±¡°Ê²Ã´Ñ½£¬TÐô¼Óȹ×Ó¼Ó°ü°ü£¬ÕýºÃÅä³ÉÒ»Ì×ѽ£¬Ð¡½ã£¬Âé·³Äã°üÆðÀ´¡£¡±¡°¡­¡­¡±£¬MM¶¼»áÓÃCompositeģʽÁË£¬Äã»áÁËûÓУ¿

¡¡¡¡ºÏ³Éģʽ£ººÏ³Éģʽ½«¶ÔÏó×éÖ¯µ½Ê÷½á¹¹ÖУ¬¿ÉÒÔÓÃÀ´ÃèÊöÕûÌåÓ벿·ÖµÄ¹ØÏµ¡£ºÏ³Éģʽ¾ÍÊÇÒ»¸ö´¦Àí¶ÔÏóµÄÊ÷½á¹¹µÄģʽ¡£ºÏ³Éģʽ°Ñ²¿·ÖÓëÕûÌåµÄ¹ØÏµÓÃÊ÷½á¹¹±íʾ³öÀ´¡£ºÏ³ÉģʽʹµÃ¿Í»§¶Ë°ÑÒ»¸ö¸öµ¥¶ÀµÄ³É·Ö¶ÔÏóºÍÓÉËûÃǸ´ºÏ¶ø³ÉµÄºÏ³É¶ÔÏóͬµÈ¿´´ý¡£

????9¡¢DECORATOR?Mary¹ýÍêÂÖµ½Sarly¹ýÉúÈÕ£¬»¹ÊDz»Òª½ÐËý×Ô¼ºÌôÁË£¬²»È»Õâ¸öÔ»ïʳ·Ñ¿Ï¶¨ÍæÍ꣬ÄóöÎÒÈ¥ÄêÔÚ»ªÉ½¶¥ÉÏÕÕµÄÕÕÆ¬£¬ÔÚ±³ÃæÐ´ÉÏ¡°×îºÃµÄµÄÀñÎ¾ÍÊǰ®ÄãµÄFita¡±£¬ÔÙµ½½ÖÉÏÀñÆ·µêÂòÁ˸öÏñ¿ò£¨ÂôÀñÆ·µÄMMÒ²ºÜƯÁÁŶ£©£¬ÔÙÕÒ¸ô±Ú¸ãÃÀÊõÉè¼ÆµÄMikeÉè¼ÆÁËÒ»¸öƯÁÁµÄºÐ×Ó×°ÆðÀ´¡­¡­£¬ÎÒÃǶ¼ÊÇDecorator£¬×îÖÕ¶¼ÔÚÐÞÊÎÎÒÕâ¸öÈËѽ£¬ÔõôÑù£¬¿´¶®ÁËÂð£¿

¡¡¡¡×°ÊÎģʽ£º×°ÊÎģʽÒÔ¶Ô¿Í»§¶Ë͸Ã÷µÄ·½Ê½À©Õ¹¶ÔÏóµÄ¹¦ÄÜ£¬ÊǼ̳йØÏµµÄÒ»¸öÌæ´ú·½°¸£¬Ìṩ±È¼Ì³Ð¸ü¶àµÄÁé»îÐÔ¡£¶¯Ì¬¸øÒ»¸ö¶ÔÏóÔö¼Ó¹¦ÄÜ£¬ÕâЩ¹¦ÄÜ¿ÉÒÔÔÙ¶¯Ì¬µÄ³·Ïû¡£Ôö¼ÓÓÉһЩ»ù±¾¹¦ÄܵÄÅÅÁÐ×éºÏ¶ø²úÉúµÄ·Ç³£´óÁ¿µÄ¹¦ÄÜ¡£

????10¡¢FACADE?ÎÒÓÐÒ»¸öרҵµÄNikonÏà»ú£¬ÎÒ¾Íϲ»¶×Ô¼ºÊÖ¶¯µ÷¹âȦ¡¢¿ìÃÅ£¬ÕâÑùÕÕ³öÀ´µÄÕÕÆ¬²Åרҵ£¬µ«MM¿É²»¶®ÕâЩ£¬½ÌÁ˰ëÌìÒ²²»»á¡£ÐÒºÃÏà»úÓÐFacadeÉè¼ÆÄ£Ê½£¬°ÑÏà»úµ÷Õûµ½×Ô¶¯µµ£¬Ö»Òª¶Ô׼Ŀ±ê°´¿ìÞÍÐÐÁË£¬Ò»ÇÐÓÉÏà»ú×Ô¶¯µ÷Õû£¬ÕâÑùMMÒ²¿ÉÒÔÓÃÕâ¸öÏà»ú¸øÎÒÅÄÕÅÕÕÆ¬ÁË¡£

¡¡¡¡ÃÅÃæÄ£Ê½£ºÍⲿÓëÒ»¸ö×ÓϵͳµÄͨÐűØÐëͨ¹ýÒ»¸öͳһµÄÃÅÃæ¶ÔÏó½øÐС£ÃÅÃæÄ£Ê½Ìṩһ¸ö¸ß²ã´ÎµÄ½Ó¿Ú£¬Ê¹µÃ×Óϵͳ¸üÒ×ÓÚʹÓá£Ã¿Ò»¸ö×ÓϵͳֻÓÐÒ»¸öÃÅÃæÀ࣬¶øÇÒ´ËÃÅÃæÀàÖ»ÓÐÒ»¸öʵÀý£¬Ò²¾ÍÊÇ˵ËüÊÇÒ»¸öµ¥Àýģʽ¡£µ«Õû¸öϵͳ¿ÉÒÔÓжà¸öÃÅÃæÀà¡£

????11¡¢FLYWEIGHT?ÿÌì¸úMM·¢¶ÌÐÅ£¬ÊÖÖ¸¶¼ÀÛËÀÁË£¬×î½üÂòÁ˸öÐÂÊÖ»ú£¬¿ÉÒÔ°ÑһЩ³£Óõľä×Ó´æÔÚÊÖ»úÀҪÓõÄʱºò£¬Ö±½ÓÄóöÀ´£¬ÔÚÇ°Ãæ¼ÓÉÏMMµÄÃû×־ͿÉÒÔ·¢ËÍÁË£¬ÔÙ²»ÓÃÒ»¸ö×ÖÒ»¸ö×ÖÇÃÁË¡£¹²ÏíµÄ¾ä×Ó¾ÍÊÇFlyweight£¬MMµÄÃû×Ö¾ÍÊÇÌáÈ¡³öÀ´µÄÍâ²¿ÌØÕ÷£¬¸ù¾ÝÉÏÏÂÎÄÇé¿öʹÓá£

¡¡¡¡ÏíԪģʽ£ºFLYWEIGHTÔÚÈ­»÷±ÈÈüÖÐÖ¸×îÇáÁ¿¼¶¡£ÏíԪģʽÒÔ¹²ÏíµÄ·½Ê½¸ßЧµÄÖ§³Ö´óÁ¿µÄϸÁ£¶È¶ÔÏó¡£ÏíԪģʽÄÜ×öµ½¹²ÏíµÄ¹Ø¼üÊÇÇø·ÖÄÚÔÌ״̬ºÍÍâÔÌ״̬¡£ÄÚÔÌ״̬´æ´¢ÔÚÏíÔªÄÚ²¿£¬²»»áËæ»·¾³µÄ¸Ä±ä¶øÓÐËù²»Í¬¡£ÍâÔÌ״̬ÊÇËæ»·¾³µÄ¸Ä±ä¶ø¸Ä±äµÄ¡£ÍâÔÌ״̬²»ÄÜÓ°ÏìÄÚÔÌ״̬£¬ËüÃÇÊÇÏ໥¶ÀÁ¢µÄ¡£½«¿ÉÒÔ¹²ÏíµÄ״̬ºÍ²»¿ÉÒÔ¹²ÏíµÄ״̬´Ó³£¹æÀàÖÐÇø·Ö¿ªÀ´£¬½«²»¿ÉÒÔ¹²ÏíµÄ״̬´ÓÀàÀïÌÞ³ý³öÈ¥¡£¿Í»§¶Ë²»¿ÉÒÔÖ±½Ó´´½¨±»¹²ÏíµÄ¶ÔÏ󣬶øÓ¦µ±Ê¹ÓÃÒ»¸ö¹¤³§¶ÔÏó¸ºÔð´´½¨±»¹²ÏíµÄ¶ÔÏó¡£ÏíԪģʽ´ó·ù¶ÈµÄ½µµÍÄÚ´æÖжÔÏóµÄÊýÁ¿¡£

????12¡¢PROXY?¸úMMÔÚÍøÉÏÁÄÌ죬һ¿ªÍ·×ÜÊÇ¡°hi,ÄãºÃ¡±,¡°Äã´ÓÄĶùÀ´Ñ½£¿¡±¡°Äã¶à´óÁË£¿¡±¡°Éí¸ß¶àÉÙѽ£¿¡±ÕâЩ»°£¬Õæ·³ÈË£¬Ð´¸ö³ÌÐò×öΪÎÒµÄProxy°É£¬·²ÊǽÓÊÕµ½ÕâЩ»°¶¼ÉèÖúÃÁË×Ô¶¯µÄ»Ø´ð£¬½ÓÊÕµ½ÆäËûµÄ»°Ê±ÔÙ֪ͨÎһشð£¬ÔõôÑù£¬¿á°É¡£

¡¡¡¡´úÀíģʽ£º´úÀíģʽ¸øÄ³Ò»¸ö¶ÔÏóÌṩһ¸ö´úÀí¶ÔÏ󣬲¢ÓÉ´úÀí¶ÔÏó¿ØÖƶÔÔ´¶ÔÏóµÄÒýÓᣴúÀí¾ÍÊÇÒ»¸öÈË»òÒ»¸ö»ú¹¹´ú±íÁíÒ»¸öÈË»òÕßÒ»¸ö»ú¹¹²ÉÈ¡Ðж¯¡£Ä³Ð©Çé¿öÏ£¬¿Í»§²»Ïë»òÕß²»Äܹ»Ö±½ÓÒýÓÃÒ»¸ö¶ÔÏ󣬴úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§ºÍÄ¿±ê¶ÔÏóÖ±½ÓÆðµ½ÖнéµÄ×÷Ó᣿ͻ§¶Ë·Ö±æ²»³ö´úÀíÖ÷Ìâ¶ÔÏóÓëÕæÊµÖ÷Ìâ¶ÔÏó¡£´úÀíģʽ¿ÉÒÔ²¢²»ÖªµÀÕæÕýµÄ±»´úÀí¶ÔÏ󣬶ø½ö½ö³ÖÓÐÒ»¸ö±»´úÀí¶ÔÏóµÄ½Ó¿Ú£¬Õâʱºò´úÀí¶ÔÏó²»Äܹ»´´½¨±»´úÀí¶ÔÏ󣬱»´úÀí¶ÔÏó±ØÐëÓÐϵͳµÄÆäËû½ÇÉ«´úΪ´´½¨²¢´«Èë¡£


????ÐÐΪģʽ

????13¡¢CHAIN OF RESPONSIBLEITY?ÍíÉÏÈ¥ÉÏÓ¢Óï¿Î£¬ÎªÁ˺ÿªÁï×øµ½ÁË×îºóÒ»ÅÅ£¬ÍÛ£¬Ç°Ãæ×øÁ˺ü¸¸öƯÁÁµÄMM°¥£¬ÕÒÕÅÖ½Ìõ£¬Ð´ÉÏ¡°Hi,¿ÉÒÔ×öÎÒµÄÅ®ÅóÓÑÂð£¿Èç¹û²»Ô¸ÒâÇëÏòǰ´«¡±£¬Ö½Ìõ¾ÍÒ»¸ö½ÓÒ»¸öµÄ´«ÉÏÈ¥ÁË£¬Ôã¸â£¬´«µ½µÚÒ»ÅŵÄMM°ÑÖ½Ìõ´«¸øÀÏʦÁË£¬Ìý˵ÊǸöÀÏ´¦Å®Ñ½£¬¿ìÅÜ!

¡¡¡¡ÔðÈÎÁ´Ä£Ê½£ºÔÚÔðÈÎÁ´Ä£Ê½ÖУ¬ºÜ¶à¶ÔÏóÓÉÿһ¸ö¶ÔÏó¶ÔÆäϼҵÄÒýÓöø½Ó ÆðÀ´ÐγÉÒ»ÌõÁ´¡£ÇëÇóÔÚÕâ¸öÁ´ÉÏ´«µÝ£¬Ö±µ½Á´ÉϵÄijһ¸ö¶ÔÏó¾ö¶¨´¦Àí´ËÇëÇ󡣿ͻ§²¢²»ÖªµÀÁ´ÉϵÄÄÄÒ»¸ö¶ÔÏó×îÖÕ´¦ÀíÕâ¸öÇëÇó£¬ÏµÍ³¿ÉÒÔÔÚ²»Ó°Ïì¿Í»§¶ËµÄÇé¿ö϶¯Ì¬µÄÖØÐÂ×éÖ¯Á´ºÍ·ÖÅäÔðÈΡ£´¦ÀíÕßÓÐÁ½¸öÑ¡Ôñ£º³Ðµ£ÔðÈλòÕß°ÑÔðÈÎÍÆ¸øÏ¼ҡ£Ò»¸öÇëÇó¿ÉÒÔ×îÖÕ²»±»ÈκνÓÊն˶ÔÏóËù½ÓÊÜ¡£

????14¡¢COMMAND?°³ÓÐÒ»¸öMM¼ÒÀï¹ÜµÃÌØ±ðÑÏ£¬Ã»·¨¼ûÃæ£¬Ö»ºÃ½èÖúÓÚËýµÜµÜÔÚÎÒÃÇÁ©Ö®¼ä´«ËÍÐÅÏ¢£¬Ëý¶ÔÎÒÓÐʲôָʾ£¬¾ÍдһÕÅÖ½ÌõÈÃËýµÜµÜ´ø¸øÎÒ¡£Õâ²»£¬ËýµÜµÜÓÖ´«Ë͹ýÀ´Ò»¸öCOMMAND£¬ÎªÁ˸ÐлËû£¬ÎÒÇëËû³ÔÁËÍëÔÓ½´Ã棬ÄÄÖªµÀËû˵£º¡°ÎÒͬʱ¸øÎÒ½ã½ãÈý¸öÄÐÅóÓÑËÍCOMMAND£¬¾ÍÊýÄã×îÐ¡Æø£¬²ÅÇëÎÒ³ÔÃæ¡£¡±£¬:-(

¡¡¡¡ÃüÁîģʽ£ºÃüÁîģʽ°ÑÒ»¸öÇëÇó»òÕß²Ù×÷·â×°µ½Ò»¸ö¶ÔÏóÖС£ÃüÁîģʽ°Ñ·¢³öÃüÁîµÄÔðÈκÍÖ´ÐÐÃüÁîµÄÔðÈηָ£¬Î¯Åɸø²»Í¬µÄ¶ÔÏó¡£ÃüÁîģʽÔÊÐíÇëÇóµÄÒ»·½ºÍ·¢Ë͵ÄÒ»·½¶ÀÁ¢¿ªÀ´£¬Ê¹µÃÇëÇóµÄÒ»·½²»±ØÖªµÀ½ÓÊÕÇëÇóµÄÒ»·½µÄ½Ó¿Ú£¬¸ü²»±ØÖªµÀÇëÇóÊÇÔõô±»½ÓÊÕ£¬ÒÔ¼°²Ù×÷ÊÇ·ñÖ´ÐУ¬ºÎʱ±»Ö´ÐÐÒÔ¼°ÊÇÔõô±»Ö´Ðеġ£ÏµÍ³Ö§³ÖÃüÁîµÄ³·Ïû¡£

????15¡¢INTERPRETER?°³ÓÐÒ»¸ö¡¶ÅÝMMÕæ¾­¡·£¬ÉÏÃæÓи÷ÖÖÅÝMMµÄ¹¥ÂÔ£¬±ÈÈç˵ȥ³ÔÎ÷²ÍµÄ²½Ö衢ȥ¿´µçÓ°µÄ·½·¨µÈµÈ£¬¸úMMÔ¼»áʱ£¬Ö»Òª×öÒ»¸öInterpreter£¬ÕÕ×ÅÉÏÃæµÄ½Å±¾Ö´ÐоͿÉÒÔÁË¡£

¡¡¡¡½âÊÍÆ÷ģʽ£º¸ø¶¨Ò»¸öÓïÑԺ󣬽âÊÍÆ÷ģʽ¿ÉÒÔ¶¨Òå³öÆäÎÄ·¨µÄÒ»ÖÖ±íʾ£¬²¢Í¬Ê±Ìṩһ¸ö½âÊÍÆ÷¡£¿Í»§¶Ë¿ÉÒÔʹÓÃÕâ¸ö½âÊÍÆ÷À´½âÊÍÕâ¸öÓïÑÔÖеľä×Ó¡£½âÊÍÆ÷ģʽ½«ÃèÊöÔõÑùÔÚÓÐÁËÒ»¸ö¼òµ¥µÄÎÄ·¨ºó£¬Ê¹ÓÃģʽÉè¼Æ½âÊÍÕâЩÓï¾ä¡£ÔÚ½âÊÍÆ÷ģʽÀïÃæÌáµ½µÄÓïÑÔÊÇÖ¸ÈκνâÊÍÆ÷¶ÔÏóÄܹ»½âÊ͵ÄÈκÎ×éºÏ¡£ÔÚ½âÊÍÆ÷ģʽÖÐÐèÒª¶¨ÒåÒ»¸ö´ú±íÎÄ·¨µÄÃüÁîÀàµÄµÈ¼¶½á¹¹£¬Ò²¾ÍÊÇһϵÁеÄ×éºÏ¹æÔò¡£Ã¿Ò»¸öÃüÁî¶ÔÏó¶¼ÓÐÒ»¸ö½âÊÍ·½·¨£¬´ú±í¶ÔÃüÁî¶ÔÏóµÄ½âÊÍ¡£ÃüÁî¶ÔÏóµÄµÈ¼¶½á¹¹ÖеĶÔÏóµÄÈκÎÅÅÁÐ×éºÏ¶¼ÊÇÒ»¸öÓïÑÔ¡£

????16¡¢ITERATOR?ÎÒ°®ÉÏÁËMary£¬²»¹ËÒ»ÇеÄÏòËýÇó»é¡£

Mary£º¡°ÏëÒªÎÒ¸úÄã½á»é£¬µÃ´ðÓ¦ÎÒµÄÌõ¼þ¡±

ÎÒ£º¡°Ê²Ã´Ìõ¼þÎÒ¶¼´ðÓ¦£¬Äã˵°É¡±

Mary£º¡°ÎÒ¿´ÉÏÁËÄǸöÒ»¿ËÀ­µÄ×êʯ¡±

ÎÒ£º¡°ÎÒÂò£¬ÎÒÂò£¬»¹ÓÐÂ𣿡±

Mary£º¡°ÎÒ¿´ÉÏÁ˺þ±ßµÄÄǶ°±ðÊû¡±

ÎÒ£º¡°ÎÒÂò£¬ÎÒÂò£¬»¹ÓÐÂ𣿡±

Mary£º¡°ÄãµÄСµÜµÜ±ØÐëÒªÓÐ50cm³¤¡±

ÎÒÄÔ´üÎ˵ÄÒ»Éù£¬×øÔÚÒÎ×ÓÉÏ£¬Ò»Ò§ÑÀ£º¡°ÎÒ¼ô£¬ÎÒ¼ô£¬»¹ÓÐÂ𣿡±

¡­¡­

¡¡¡¡µü´ú×Óģʽ£ºµü´ú×Óģʽ¿ÉÒÔ˳Ðò·ÃÎÊÒ»¸ö¾Û¼¯ÖеÄÔªËØ¶ø²»±Ø±©Â¶¾Û¼¯µÄÄÚ²¿±íÏó¡£¶à¸ö¶ÔÏó¾ÛÔÚÒ»ÆðÐγɵÄ×ÜÌå³ÆÖ®Îª¾Û¼¯£¬¾Û¼¯¶ÔÏóÊÇÄܹ»°üÈÝÒ»×é¶ÔÏóµÄÈÝÆ÷¶ÔÏó¡£µü´ú×Óģʽ½«µü´úÂß¼­·â×°µ½Ò»¸ö¶ÀÁ¢µÄ×Ó¶ÔÏóÖУ¬´Ó¶øÓë¾Û¼¯±¾Éí¸ô¿ª¡£µü´ú×Óģʽ¼ò»¯Á˾ۼ¯µÄ½çÃæ¡£Ã¿Ò»¸ö¾Û¼¯¶ÔÏ󶼿ÉÒÔÓÐÒ»¸ö»òÒ»¸öÒÔÉϵĵü´ú×Ó¶ÔÏó£¬Ã¿Ò»¸öµü´ú×ӵĵü´ú״̬¿ÉÒÔÊDZ˴˶ÀÁ¢µÄ¡£µü´úËã·¨¿ÉÒÔ¶ÀÁ¢ÓÚ¾Û¼¯½ÇÉ«±ä»¯¡£

????17¡¢MEDIATOR?ËĸöMM´òÂ齫£¬Ï໥֮¼äË­Ó¦¸Ã¸øË­¶àÉÙÇ®Ëã²»Çå³þÁË£¬ÐÒ¿÷µ±Ê±ÎÒÔÚÅԱߣ¬°´ÕÕ¸÷×ԵijïÂëÊýËãÇ®£¬×¬ÁËÇ®µÄ´ÓÎÒÕâÀïÄã¬ÅâÁËÇ®µÄÒ²¸¶¸øÎÒ£¬Ò»ÇоÍOKÀ²£¬°³µÃµ½ÁËËĸöMMµÄµç»°¡£

¡¡¡¡µ÷Í£Õßģʽ£ºµ÷Í£Õßģʽ°ü×°ÁËһϵÁжÔÏóÏ໥×÷Óõķ½Ê½£¬Ê¹µÃÕâЩ¶ÔÏó²»±ØÏ໥Ã÷ÏÔ×÷ÓᣴӶøÊ¹ËûÃÇ¿ÉÒÔËÉɢżºÏ¡£µ±Ä³Ð©¶ÔÏóÖ®¼äµÄ×÷Ó÷¢Éú¸Ä±äʱ£¬²»»áÁ¢¼´Ó°ÏìÆäËûµÄһЩ¶ÔÏóÖ®¼äµÄ×÷Óᣱ£Ö¤ÕâЩ×÷ÓÿÉÒԱ˴˶ÀÁ¢µÄ±ä»¯¡£µ÷Í£Õßģʽ½«¶à¶Ô¶àµÄÏ໥×÷ÓÃת»¯ÎªÒ»¶Ô¶àµÄÏ໥×÷Óᣵ÷Í£Õßģʽ½«¶ÔÏóµÄÐÐΪºÍЭ×÷³éÏ󻯣¬°Ñ¶ÔÏóÔÚС³ß¶ÈµÄÐÐΪÉÏÓëÆäËû¶ÔÏóµÄÏ໥×÷Ó÷ֿª´¦Àí¡£

????18¡¢MEMENTO?ͬʱ¸ú¼¸¸öMMÁÄÌìʱ£¬Ò»¶¨Òª¼ÇÇå³þ¸Õ²Å¸úMM˵ÁËЩʲô»°£¬²»È»MM·¢ÏÖÁ˻᲻¸ßÐ˵ÄŶ£¬ÐÒ¿÷ÎÒÓиö±¸Íü¼£¬¸Õ²ÅÓëÄĸöMM˵ÁËʲô»°ÎÒ¶¼¿½±´Ò»·Ý·Åµ½±¸Íü¼ÀïÃæ±£´æ£¬ÕâÑù¿ÉÒÔËæÊ±²ì¿´ÒÔǰµÄ¼Ç¼À²¡£

¡¡¡¡±¸Íü¼ģʽ£º±¸Íü¼¶ÔÏóÊÇÒ»¸öÓÃÀ´´æ´¢ÁíÍâÒ»¸ö¶ÔÏóÄÚ²¿×´Ì¬µÄ¿ìÕյĶÔÏó¡£±¸Íü¼ģʽµÄÓÃÒâÊÇÔÚ²»ÆÆ»µ·â×°µÄÌõ¼þÏ£¬½«Ò»¸ö¶ÔÏóµÄ״̬׽ס£¬²¢Íⲿ»¯£¬´æ´¢ÆðÀ´£¬´Ó¶ø¿ÉÒÔÔÚ½«À´ºÏÊʵÄʱºò°ÑÕâ¸ö¶ÔÏó»¹Ô­µ½´æ´¢ÆðÀ´µÄ״̬¡£

????19¡¢OBSERVER?ÏëÖªµÀÔÛÃǹ«Ë¾×îÐÂMMÇ鱨Â𣿼ÓÈ빫˾µÄMMÇ鱨Óʼþ×é¾ÍÐÐÁË£¬tom¸ºÔðËѼ¯Ç鱨£¬Ëû·¢ÏÖµÄÐÂÇ鱨²»ÓÃÒ»¸öÒ»¸ö֪ͨÎÒÃÇ£¬Ö±½Ó·¢²¼¸øÓʼþ×飬ÎÒÃÇ×÷Ϊ¶©ÔÄÕߣ¨¹Û²ìÕߣ©¾Í¿ÉÒÔ¼°Ê±ÊÕµ½Ç鱨À²

¡¡¡¡¹Û²ìÕßģʽ£º¹Û²ìÕßģʽ¶¨ÒåÁËÒ»ÖÖÒ»¶Ó¶àµÄÒÀÀµ¹ØÏµ£¬Èöà¸ö¹Û²ìÕß¶ÔÏóͬʱ¼àÌýijһ¸öÖ÷Ìâ¶ÔÏó¡£Õâ¸öÖ÷Ìâ¶ÔÏóÔÚ״̬ÉÏ·¢Éú±ä»¯Ê±£¬»á֪ͨËùÓй۲ìÕß¶ÔÏó£¬Ê¹ËûÃÇÄܹ»×Ô¶¯¸üÐÂ×Ô¼º¡£

????20¡¢STATE?¸úMM½»Íùʱ£¬Ò»¶¨Òª×¢ÒâËýµÄ״̬Ŷ£¬ÔÚ²»Í¬µÄ״̬ʱËýµÄÐÐΪ»áÓв»Í¬£¬±ÈÈçÄãÔ¼Ëý½ñÌìÍíÉÏÈ¥¿´µçÓ°£¬¶ÔÄãûÐËȤµÄMM¾Í»á˵¡°ÓÐÊÂÇéÀ²¡±£¬¶ÔÄã²»ÌÖÑᵫ»¹Ã»Ï²»¶ÉϵÄMM¾Í»á˵¡°ºÃ°¡£¬²»¹ý¿ÉÒÔ´øÉÏÎÒͬÊÂô£¿¡±£¬ÒѾ­Ï²»¶ÉÏÄãµÄMM¾Í»á˵¡°¼¸µãÖÓ£¿¿´ÍêµçÓ°ÔÙÈ¥ÅݰÉÔõôÑù£¿¡±£¬µ±È»Äã¿´µçÓ°¹ý³ÌÖбíÏÖÁ¼ºÃµÄ»°£¬Ò²¿ÉÒÔ°ÑMMµÄ״̬´Ó²»ÌÖÑ᲻ϲ»¶±ä³Éϲ»¶Å¶¡£

¡¡¡¡×´Ì¬Ä£Ê½£º×´Ì¬Ä£Ê½ÔÊÐíÒ»¸ö¶ÔÏóÔÚÆäÄÚ²¿×´Ì¬¸Ä±äµÄʱºò¸Ä±äÐÐΪ¡£Õâ¸ö¶ÔÏó¿´ÉÏÈ¥ÏóÊǸıäÁËËüµÄÀàÒ»Ñù¡£×´Ì¬Ä£Ê½°ÑËùÑо¿µÄ¶ÔÏóµÄÐÐΪ°ü×°ÔÚ²»Í¬µÄ״̬¶ÔÏóÀÿһ¸ö״̬¶ÔÏó¶¼ÊôÓÚÒ»¸ö³éÏó״̬ÀàµÄÒ»¸ö×ÓÀࡣ״̬ģʽµÄÒâͼÊÇÈÃÒ»¸ö¶ÔÏóÔÚÆäÄÚ²¿×´Ì¬¸Ä±äµÄʱºò£¬ÆäÐÐÎªÒ²ËæÖ®¸Ä±ä¡£×´Ì¬Ä£Ê½ÐèÒª¶Ôÿһ¸öϵͳ¿ÉÄÜÈ¡µÃµÄ״̬´´Á¢Ò»¸ö״̬ÀàµÄ×ÓÀà¡£µ±ÏµÍ³µÄ״̬±ä»¯Ê±£¬ÏµÍ³±ã¸Ä±äËùÑ¡µÄ×ÓÀà¡£

????21¡¢STRATEGY?¸ú²»Í¬ÀàÐ͵ÄMMÔ¼»á£¬ÒªÓò»Í¬µÄ²ßÂÔ£¬ÓеÄÇëµçÓ°±È½ÏºÃ£¬ÓеÄÔòÈ¥³ÔС³ÔЧ¹û²»´í£¬ÓеÄÈ¥º£±ßÀËÂþ×îºÏÊÊ£¬µ¥Ä¿µÄ¶¼ÊÇΪÁ˵õ½MMµÄ·¼ÐÄ£¬ÎÒµÄ×·MM½õÄÒÖÐÓкöàStrategyŶ¡£

¡¡¡¡²ßÂÔģʽ£º²ßÂÔģʽÕë¶ÔÒ»×éËã·¨£¬½«Ã¿Ò»¸öËã·¨·â×°µ½¾ßÓй²Í¬½Ó¿ÚµÄ¶ÀÁ¢µÄÀàÖУ¬´Ó¶øÊ¹µÃËüÃÇ¿ÉÒÔÏà»¥Ìæ»»¡£²ßÂÔģʽʹµÃËã·¨¿ÉÒÔÔÚ²»Ó°Ïìµ½¿Í»§¶ËµÄÇé¿öÏ·¢Éú±ä»¯¡£²ßÂÔģʽ°ÑÐÐΪºÍ»·¾³·Ö¿ª¡£»·¾³ÀฺÔðά³ÖºÍ²éѯÐÐΪÀ࣬¸÷ÖÖËã·¨ÔÚ¾ßÌåµÄ²ßÂÔÀàÖÐÌṩ¡£ÓÉÓÚËã·¨ºÍ»·¾³¶ÀÁ¢¿ªÀ´£¬Ëã·¨µÄÔö¼õ£¬Ð޸ͼ²»»áÓ°Ïìµ½»·¾³ºÍ¿Í»§¶Ë¡£

????22¡¢TEMPLATE METHOD??¿´¹ý¡¶ÈçºÎ˵·þÅ®ÉúÉÏ´²¡·Õⲿ¾­µäÎÄÕÂÂð£¿Å®Éú´ÓÈÏʶµ½ÉÏ´²µÄ²»±äµÄ²½Öè·ÖΪÇÉÓö¡¢´òÆÆ½©¾Ö¡¢Õ¹¿ª×·Çó¡¢½ÓÎÇ¡¢Ç°Ï·¡¢¶¯ÊÖ¡¢°®¸§¡¢½øÈ¥°Ë´ó²½Öè(Template method)£¬µ«Ã¿¸ö²½ÖèÕë¶Ô²»Í¬µÄÇé¿ö£¬¶¼Óв»Ò»ÑùµÄ×ö·¨£¬Õâ¾ÍÒª¿´ÄãËæ»úÓ¦±äÀ²(¾ßÌåʵÏÖ)£»

¡¡¡¡Ä£°å·½·¨Ä£Ê½£ºÄ£°å·½·¨Ä£Ê½×¼±¸Ò»¸ö³éÏóÀ࣬½«²¿·ÖÂß¼­ÒÔ¾ßÌå·½·¨ÒÔ¼°¾ßÌå¹¹Ôì×ÓµÄÐÎʽʵÏÖ£¬È»ºóÉùÃ÷һЩ³éÏó·½·¨À´ÆÈʹ×ÓÀàʵÏÖÊ£ÓàµÄÂß¼­¡£²»Í¬µÄ×ÓÀà¿ÉÒÔÒÔ²»Í¬µÄ·½Ê½ÊµÏÖÕâЩ³éÏó·½·¨£¬´Ó¶ø¶ÔÊ£ÓàµÄÂß¼­Óв»Í¬µÄʵÏÖ¡£ÏÈÖÆ¶¨Ò»¸ö¶¥¼¶Âß¼­¿ò¼Ü£¬¶ø½«Âß¼­µÄϸ½ÚÁô¸ø¾ßÌåµÄ×ÓÀàȥʵÏÖ¡£

????23¡¢VISITOR?ÇéÈ˽ڵ½ÁË£¬Òª¸øÃ¿¸öMMËÍÒ»ÊøÏÊ»¨ºÍÒ»ÕÅ¿¨Æ¬£¬¿ÉÊÇÿ¸öMMË͵ύ¶¼ÒªÕë¶ÔËý¸öÈ˵ÄÌØµã£¬Ã¿ÕÅ¿¨Æ¬Ò²Òª¸ù¾Ý¸öÈ˵ÄÌØµãÀ´Ìô£¬ÎÒÒ»¸öÈËÄĸãµÃÇå³þ£¬»¹ÊÇÕÒ»¨µêÀϰåºÍÀñÆ·µêÀϰå×öÒ»ÏÂVisitor£¬Èû¨µêÀϰå¸ù¾ÝMMµÄÌØµãÑ¡Ò»Êø»¨£¬ÈÃÀñÆ·µêÀϰåÒ²¸ù¾Ýÿ¸öÈËÌØµãѡһÕÅ¿¨£¬ÕâÑù¾ÍÇáËɶàÁË£»

¡¡¡¡·ÃÎÊÕßģʽ£º·ÃÎÊÕßģʽµÄÄ¿µÄÊÇ·âװһЩʩ¼ÓÓÚijÖÖÊý¾Ý½á¹¹ÔªËØÖ®ÉϵIJÙ×÷¡£Ò»µ©ÕâЩ²Ù×÷ÐèÒªÐ޸ĵϰ£¬½ÓÊÜÕâ¸ö²Ù×÷µÄÊý¾Ý½á¹¹¿ÉÒÔ±£³Ö²»±ä¡£·ÃÎÊÕßģʽÊÊÓÃÓÚÊý¾Ý½á¹¹Ïà¶Ô䶨µÄϵͳ£¬Ëü°ÑÊý¾Ý½á¹¹ºÍ×÷ÓÃÓڽṹÉϵIJÙ×÷Ö®¼äµÄñîºÏ½âÍÑ¿ª£¬Ê¹µÃ²Ù×÷¼¯ºÏ¿ÉÒÔÏà¶Ô×ÔÓɵÄÑÝ»¯¡£·ÃÎÊÕßģʽʹµÃÔö¼ÓеIJÙ×÷±äµÄºÜÈÝÒ×£¬¾ÍÊÇÔö¼ÓÒ»¸öеķÃÎÊÕßÀà¡£·ÃÎÊÕßģʽ½«ÓйصÄÐÐΪ¼¯Öе½Ò»¸ö·ÃÎÊÕß¶ÔÏóÖУ¬¶ø²»ÊÇ·ÖÉ¢µ½Ò»¸ö¸öµÄ½ÚµãÀàÖС£µ±Ê¹Ó÷ÃÎÊÕßģʽʱ£¬Òª½«¾¡¿ÉÄܶàµÄ¶ÔÏóä¯ÀÀÂß¼­·ÅÔÚ·ÃÎÊÕßÀàÖУ¬¶ø²»ÊǷŵ½ËüµÄ×ÓÀàÖС£·ÃÎÊÕßģʽ¿ÉÒÔ¿ç¹ý¼¸¸öÀàµÄµÈ¼¶½á¹¹·ÃÎÊÊôÓÚ²»Í¬µÄµÈ¼¶½á¹¹µÄ³ÉÔ±Àà¡£


zzw0598 ·¢±íÓÚ:2005.03.31 14:26 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(410´Î) :: ÆÀÂÛ (1)
===========================================================
javaÉú³Éexel
===========================================================

ʹÓÃWindows²Ù×÷ϵͳµÄÅóÓѶÔExcel£¨µç×Ó±í¸ñ£©Ò»¶¨²»»áİÉú£¬µ«ÊÇҪʹÓÃJavaÓïÑÔÀ´²Ù×ÝExcelÎļþ²¢²»ÊÇÒ»¼þÈÝÒ×µÄÊ¡£ÔÚWebÓ¦ÓÃÈÕÒæÊ¢ÐеĽñÌ죬ͨ¹ýWebÀ´²Ù×÷ExcelÎļþµÄÐèÇóÔ½À´Ô½Ç¿ÁÒ£¬Ä¿Ç°½ÏΪÁ÷ÐеIJÙ×÷ÊÇÔÚJSP»òServlet Öд´½¨Ò»¸öCSV £¨comma separated values£©Îļþ£¬²¢½«Õâ¸öÎļþÒÔMIME£¬text/csvÀàÐÍ·µ»Ø¸øä¯ÀÀÆ÷£¬½Ó×Åä¯ÀÀÆ÷µ÷ÓÃExcel²¢ÇÒÏÔʾCSVÎļþ¡£ÕâÑùÖ»ÊÇ˵¿ÉÒÔ·ÃÎʵ½ExcelÎļþ£¬µ«ÊÇ»¹²»ÄÜÕæÕýµÄ²Ù×ÝExcelÎļþ£¬±¾ÎĽ«¸ø´ó¼ÒÒ»¸ö¾ªÏ²£¬Ïò´ó¼Ò½éÉÜÒ»¸ö¿ª·ÅÔ´ÂëÏîÄ¿£¬Java Excel API£¬Ê¹ÓÃËü´ó¼Ò¾Í¿ÉÒÔ·½±ãµØ²Ù×ÝExcelÎļþÁË¡£

¡¡¡¡Java Excel API¼ò½é

¡¡¡¡Java ExcelÊÇÒ»¿ª·ÅÔ´ÂëÏîÄ¿£¬Í¨¹ýËüJava¿ª·¢ÈËÔ±¿ÉÒÔ¶ÁÈ¡ExcelÎļþµÄÄÚÈÝ¡¢´´½¨ÐµÄExcelÎļþ¡¢¸üÐÂÒѾ­´æÔÚµÄExcelÎļþ¡£Ê¹ÓøÃAPI·ÇWindows²Ù×÷ϵͳҲ¿ÉÒÔͨ¹ý´¿JavaÓ¦ÓÃÀ´´¦ÀíExcelÊý¾Ý±í¡£ÒòΪÊÇʹÓÃJava±àдµÄ£¬ËùÒÔÎÒÃÇÔÚWebÓ¦ÓÃÖпÉÒÔͨ¹ýJSP¡¢ServletÀ´µ÷ÓÃAPIʵÏÖ¶ÔExcelÊý¾Ý±íµÄ·ÃÎÊ¡£

¡¡¡¡ÏÖÔÚ·¢²¼µÄÎȶ¨°æ±¾ÊÇV2.0£¬ÌṩÒÔϹ¦ÄÜ£º

¡¡¡¡¡¡´ÓExcel 95¡¢97¡¢2000µÈ¸ñʽµÄÎļþÖжÁÈ¡Êý¾Ý£»
¡¡¡¡¡¡¶ÁÈ¡Excel¹«Ê½£¨¿ÉÒÔ¶ÁÈ¡Excel 97ÒÔºóµÄ¹«Ê½£©£»
¡¡¡¡¡¡Éú³ÉExcelÊý¾Ý±í£¨¸ñʽΪExcel 97£©£»
¡¡¡¡¡¡Ö§³Ö×ÖÌå¡¢Êý×Ö¡¢ÈÕÆÚµÄ¸ñʽ»¯£»
¡¡¡¡¡¡Ö§³Öµ¥Ôª¸ñµÄÒõÓ°²Ù×÷£¬ÒÔ¼°ÑÕÉ«²Ù×÷£»
¡¡¡¡¡¡ÐÞ¸ÄÒѾ­´æÔÚµÄÊý¾Ý±í£»

¡¡¡¡ÏÖÔÚ»¹²»Ö§³ÖÒÔϹ¦ÄÜ£¬µ«²»¾Ã¾Í»áÌṩÁË£º

¡¡¡¡¡¡²»Äܹ»¶Áȡͼ±íÐÅÏ¢£»
¡¡¡¡¡¡¿ÉÒÔ¶Á£¬µ«ÊDz»ÄÜÉú³É¹«Ê½£¬ÈκÎÀàÐ͹«Ê½×îºóµÄ¼ÆËãÖµ¶¼¿ÉÒÔ¶Á³ö£»
¡¡
¡¡¡¡ Ó¦ÓÃʾÀý

¡¡¡¡1¡¢´ÓExcelÎļþ¶ÁÈ¡Êý¾Ý±í

¡¡¡¡Java Excel API¼È¿ÉÒÔ´Ó±¾µØÎļþϵͳµÄÒ»¸öÎļþ(.xls)£¬Ò²¿ÉÒÔ´ÓÊäÈëÁ÷ÖжÁÈ¡ExcelÊý¾Ý±í¡£¶ÁÈ¡ExcelÊý¾Ý±íµÄµÚÒ»²½ÊÇ´´½¨Workbook(ÊõÓ¹¤×÷±¡)£¬ÏÂÃæµÄ´úÂëÆ¬¶Î¾ÙÀý˵Ã÷ÁËÓ¦¸ÃÈçºÎ²Ù×÷£º(ÍêÕû´úÂë¼ûExcelReading.java)

import java.io.*;
import jxl.*;
¡­ ¡­ ¡­ ¡­
try
{
//¹¹½¨Workbook¶ÔÏó, Ö»¶ÁWorkbook¶ÔÏó
//Ö±½Ó´Ó±¾µØÎļþ´´½¨Workbook
//´ÓÊäÈëÁ÷´´½¨Workbook
InputStream is = new FileInputStream(sourcefile);
jxl.Workbook rwb = Workbook.getWorkbook(is);
}
catch (Exception e)
{
e.printStackTrace();
}

¡¡¡¡Ò»µ©´´½¨ÁËWorkbook£¬ÎÒÃǾͿÉÒÔͨ¹ýËüÀ´·ÃÎÊExcel Sheet(ÊõÓ¹¤×÷±í)¡£²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º

//»ñÈ¡µÚÒ»ÕÅSheet±í
Sheet rs = rwb.getSheet(0);

¡¡¡¡ÎÒÃǼȿÉÄÜͨ¹ýSheetµÄÃû³ÆÀ´·ÃÎÊËü£¬Ò²¿ÉÒÔͨ¹ýϱêÀ´·ÃÎÊËü¡£Èç¹ûͨ¹ýϱêÀ´·ÃÎʵϰ£¬Òª×¢ÒâµÄÒ»µãÊÇϱê´Ó0¿ªÊ¼£¬¾ÍÏñÊý×éÒ»Ñù¡£

¡¡¡¡Ò»µ©µÃµ½ÁËSheet£¬ÎÒÃǾͿÉÒÔͨ¹ýËüÀ´·ÃÎÊExcel Cell(ÊõÓµ¥Ôª¸ñ)¡£²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º

//»ñÈ¡µÚÒ»ÐУ¬µÚÒ»ÁеÄÖµ
Cell c00 = rs.getCell(0, 0);
String strc00 = c00.getContents();

//»ñÈ¡µÚÒ»ÐУ¬µÚ¶þÁеÄÖµ
Cell c10 = rs.getCell(1, 0);
String strc10 = c10.getContents();

//»ñÈ¡µÚ¶þÐУ¬µÚ¶þÁеÄÖµ
Cell c11 = rs.getCell(1, 1);
String strc11 = c11.getContents();

System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());
System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());
System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());

¡¡¡¡Èç¹û½ö½öÊÇÈ¡µÃCellµÄÖµ£¬ÎÒÃÇ¿ÉÒÔ·½±ãµØÍ¨¹ýgetContents()·½·¨£¬Ëü¿ÉÒÔ½«ÈκÎÀàÐ͵ÄCellÖµ¶¼×÷Ϊһ¸ö×Ö·û´®·µ»Ø¡£Ê¾Àý´úÂëÖÐCell(0, 0)ÊÇÎı¾ÐÍ£¬Cell(1, 0)ÊÇÊý×ÖÐÍ£¬Cell(1,1)ÊÇÈÕÆÚÐÍ£¬Í¨¹ýgetContents()£¬ÈýÖÖÀàÐ͵ķµ»ØÖµ¶¼ÊÇ×Ö·ûÐÍ¡£

¡¡¡¡Èç¹ûÓÐÐèÒªÖªµÀCellÄÚÈݵÄÈ·ÇÐÀàÐÍ£¬APIÒ²ÌṩÁËһϵÁеķ½·¨¡£²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º

String strc00 = null;
double strc10 = 0.00;
Date strc11 = null;

Cell c00 = rs.getCell(0, 0);
Cell c10 = rs.getCell(1, 0);
Cell c11 = rs.getCell(1, 1);

if(c00.getType() == CellType.LABEL)
{
LabelCell labelc00 = (LabelCell)c00;
strc00 = labelc00.getString();
}
if(c10.getType() == CellType.NUMBER)
{
NmberCell numc10 = (NumberCell)c10;
strc10 = numc10.getvalue();
}
if(c11.getType() == CellType.DATE)
{
DateCell datec11 = (DateCell)c11;
strc11 = datec11.getDate();
}

System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());
System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());
System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());

¡¡¡¡Ôڵõ½Cell¶ÔÏóºó£¬Í¨¹ýgetType()·½·¨¿ÉÒÔ»ñµÃ¸Ãµ¥Ôª¸ñµÄÀàÐÍ£¬È»ºóÓëAPIÌṩµÄ»ù±¾ÀàÐÍÏàÆ¥Åä£¬Ç¿ÖÆ×ª»»³ÉÏàÓ¦µÄÀàÐÍ£¬×îºóµ÷ÓÃÏàÓ¦µÄȡֵ·½·¨getXXX()£¬¾Í¿ÉÒԵõ½È·¶¨ÀàÐ͵ÄÖµ¡£APIÌṩÁËÒÔÏ»ù±¾ÀàÐÍ£¬ÓëExcelµÄÊý¾Ý¸ñʽÏà¶ÔÓ¦£¬ÈçÏÂͼËùʾ£º

¡¡¡¡Ã¿ÖÖÀàÐ͵ľßÌåÒâÒ壬Çë²Î¼ûJava Excel API document£®

¡¡¡¡µ±ÄãÍê³É¶ÔExcelµç×Ó±í¸ñÊý¾ÝµÄ´¦Àíºó£¬Ò»¶¨ÒªÊ¹ÓÃclose()·½·¨À´¹Ø±ÕÏÈǰ´´½¨µÄ¶ÔÏó£¬ÒÔÊͷŶÁÈ¡Êý¾Ý±íµÄ¹ý³ÌÖÐËùÕ¼ÓõÄÄÚ´æ¿Õ¼ä£¬ÔÚ¶ÁÈ¡´óÁ¿Êý¾ÝʱÏÔµÃÓÈÎªÖØÒª¡£²Î¿¼ÈçÏ´úÂëÆ¬¶Î£º

//²Ù×÷Íê³Éʱ£¬¹Ø±Õ¶ÔÏó£¬ÊÍ·ÅÕ¼ÓõÄÄÚ´æ¿Õ¼ä
rwb.close();

¡¡¡¡Java Excel APIÌṩÁËÐí¶à·ÃÎÊExcelÊý¾Ý±íµÄ·½·¨£¬ÔÚÕâÀïÎÒÖ»¼òÒªµØ½éÉܼ¸¸ö³£Óõķ½·¨£¬ÆäËüµÄ·½·¨Çë²Î¿¼¸½Â¼ÖеÄJava Excel API document£®

WorkbookÀàÌṩµÄ·½·¨

¡¡¡¡1. int getNumberOfSheets()

¡¡¡¡»ñµÃ¹¤×÷±¡£¨Workbook£©Öй¤×÷±í£¨Sheet£©µÄ¸öÊý£¬Ê¾Àý£º

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
int sheets = rwb.getNumberOfSheets();

¡¡¡¡2. Sheet[] getSheets()

¡¡¡¡·µ»Ø¹¤×÷±¡£¨Workbook£©Öй¤×÷±í£¨Sheet£©¶ÔÏóÊý×飬ʾÀý£º

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
Sheet[] sheets = rwb.getSheets();

¡¡¡¡3. String getVersion()

¡¡¡¡·µ»ØÕýÔÚʹÓõÄAPIµÄ°æ±¾ºÅ£¬ºÃÏñÊÇûʲô̫´óµÄ×÷Óá£

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
String apiVersion = rwb.getVersion();

¡¡¡¡Sheet½Ó¿ÚÌṩµÄ·½·¨

¡¡¡¡1) String getName()

¡¡¡¡»ñÈ¡SheetµÄÃû³Æ£¬Ê¾Àý£º

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
String sheetName = rs.getName();

¡¡¡¡2) int getColumns()

¡¡¡¡»ñÈ¡Sheet±íÖÐËù°üº¬µÄ×ÜÁÐÊý£¬Ê¾Àý£º

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsColumns = rs.getColumns();

¡¡¡¡3) Cell[] getColumn(int column)

¡¡¡¡»ñȡijһÁеÄËùÓе¥Ôª¸ñ£¬·µ»ØµÄÊǵ¥Ôª¸ñ¶ÔÏóÊý×飬ʾÀý£º

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell[] cell = rs.getColumn(0);

¡¡¡¡4) int getRows()

¡¡¡¡»ñÈ¡Sheet±íÖÐËù°üº¬µÄ×ÜÐÐÊý£¬Ê¾Àý£º

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsRows = rs.getRows();

¡¡¡¡5) Cell[] getRow(int row)

¡¡¡¡»ñȡijһÐеÄËùÓе¥Ôª¸ñ£¬·µ»ØµÄÊǵ¥Ôª¸ñ¶ÔÏóÊý×飬ʾÀý×Ó£º

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell[] cell = rs.getRow(0);

¡¡¡¡6) Cell getCell(int column, int row)

¡¡¡¡»ñȡָ¶¨µ¥Ôª¸ñµÄ¶ÔÏóÒýÓã¬ÐèҪעÒâµÄÊÇËüµÄÁ½¸ö²ÎÊý£¬µÚÒ»¸öÊÇÁÐÊý£¬µÚ¶þ¸öÊÇÐÐÊý£¬ÕâÓëͨ³£µÄÐС¢ÁÐ×éºÏÓÐЩ²»Í¬¡£

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell cell = rs.getCell(0, 0);

¡¡¡¡2¡¢Éú³ÉеÄExcel¹¤×÷±¡

¡¡¡¡ÏÂÃæµÄ´úÂëÖ÷ÒªÊÇÏò´ó¼Ò½éÉÜÈçºÎÉú³É¼òµ¥µÄExcel¹¤×÷±í£¬ÔÚÕâÀïµ¥Ôª¸ñµÄÄÚÈÝÊDz»´øÈκÎÐÞÊεÄ(È磺×ÖÌ壬ÑÕÉ«µÈµÈ)£¬ËùÓеÄÄÚÈݶ¼×÷Ϊ×Ö·û´®Ð´Èë¡£(ÍêÕû´úÂë¼ûExcelWriting.java)

¡¡¡¡Óë¶ÁÈ¡Excel¹¤×÷±íÏàËÆ£¬Ê×ÏÈҪʹÓÃWorkbookÀàµÄ¹¤³§·½·¨´´½¨Ò»¸ö¿ÉдÈëµÄ¹¤×÷±¡(Workbook)¶ÔÏó£¬ÕâÀïҪעÒâµÄÊÇ£¬Ö»ÄÜͨ¹ýAPIÌṩµÄ¹¤³§·½·¨À´´´½¨Workbook£¬¶ø²»ÄÜʹÓÃWritableWorkbookµÄ¹¹Ô캯Êý£¬ÒòΪÀàWritableWorkbookµÄ¹¹Ô캯ÊýΪprotectedÀàÐÍ¡£Ê¾Àý´úÂëÆ¬¶ÎÈçÏ£º

import java.io.*;
import jxl.*;
import jxl.write.*;
¡­ ¡­ ¡­ ¡­
try
{
//¹¹½¨Workbook¶ÔÏó, Ö»¶ÁWorkbook¶ÔÏó
//Method 1£º´´½¨¿ÉдÈëµÄExcel¹¤×÷±¡
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));

//Method 2£º½«WritableWorkbookÖ±½ÓдÈëµ½Êä³öÁ÷
/*
OutputStream os = new FileOutputStream(targetfile);
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
*/
}
catch (Exception e)
{
e.printStackTrace();
}

¡¡¡¡APIÌṩÁËÁ½ÖÖ·½Ê½À´´¦Àí¿ÉдÈëµÄÊä³öÁ÷£¬Ò»ÖÖÊÇÖ±½ÓÉú³É±¾µØÎļþ£¬Èç¹ûÎļþÃû²»´øÈ«Â·¾¶µÄ»°£¬È±Ê¡µÄÎļþ»á¶¨Î»ÔÚµ±Ç°Ä¿Â¼£¬Èç¹ûÎļþÃû´øÓÐȫ·¾¶µÄ»°£¬ÔòÉú³ÉµÄExcelÎļþÔò»á¶¨Î»ÔÚÏàÓ¦µÄĿ¼£»ÁíÍâÒ»ÖÖÊǽ«Excel¶ÔÏóÖ±½ÓдÈëµ½Êä³öÁ÷£¬ÀýÈ磺Óû§Í¨¹ýä¯ÀÀÆ÷À´·ÃÎÊWeb·þÎñÆ÷£¬Èç¹ûHTTPÍ·ÉèÖÃÕýÈ·µÄ»°£¬ä¯ÀÀÆ÷×Ô¶¯µ÷Óÿͻ§¶ËµÄExcelÓ¦ÓóÌÐò£¬À´ÏÔʾ¶¯Ì¬Éú³ÉµÄExcelµç×Ó±í¸ñ¡£

¡¡¡¡½ÓÏÂÀ´¾ÍÊÇÒª´´½¨¹¤×÷±í£¬´´½¨¹¤×÷±íµÄ·½·¨Óë´´½¨¹¤×÷±¡µÄ·½·¨¼¸ºõÒ»Ñù£¬Í¬ÑùÊÇͨ¹ý¹¤³§Ä£Ê½·½·¨»ñµÃÏàÓ¦µÄ¶ÔÏ󣬸÷½·¨ÐèÒªÁ½¸ö²ÎÊý£¬Ò»¸öÊǹ¤×÷±íµÄÃû³Æ£¬ÁíÒ»¸öÊǹ¤×÷±íÔÚ¹¤×÷±¡ÖеÄλÖ㬲ο¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º

//´´½¨Excel¹¤×÷±í
jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);

"Õâ¹øÒ²Ö§ºÃÁË£¬²ÄÁÏÒ²×¼±¸ÆëÈ«ÁË£¬¿ÉÒÔ¿ªÊ¼Ï¹øÁË£¡"£¬ÏÖÔÚÒª×öµÄÖ»ÊÇʵÀý»¯APIËùÌṩµÄExcel»ù±¾Êý¾ÝÀàÐÍ£¬²¢½«ËüÃÇÌí¼Óµ½¹¤×÷±íÖоͿÉÒÔÁË£¬²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º
//1.Ìí¼ÓLabel¶ÔÏó
jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell");
ws.addCell(labelC);

//Ìí¼Ó´øÓÐ×ÖÐÍFormattingµÄ¶ÔÏó
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);
jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cell", wcfF);
ws.addCell(labelCF);

//Ìí¼Ó´øÓÐ×ÖÌåÑÕÉ«FormattingµÄ¶ÔÏó
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,
Underlinestyle.NO_UNDERLINE, jxl.format.Colour.RED);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cell", wcfFC);
ws.addCell(labelCF);

//2.Ìí¼ÓNumber¶ÔÏó
jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
ws.addCell(labelN);

//Ìí¼Ó´øÓÐformattingµÄNumber¶ÔÏó
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
ws.addCell(labelNF);

//3.Ìí¼ÓBoolean¶ÔÏó
jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
ws.addCell(labelB);

//4.Ìí¼ÓDateTime¶ÔÏó
jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());
ws.addCell(labelDT);

//Ìí¼Ó´øÓÐformattingµÄDateFormat¶ÔÏó
jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(), wcfDF);
ws.addCell(labelDTF);

¡¡¡¡ÕâÀïÓÐÁ½µã´ó¼ÒÒªÒýÆð´ó¼ÒµÄ×¢Òâ¡£µÚÒ»µã£¬ÔÚ¹¹Ôìµ¥Ôª¸ñʱ£¬µ¥Ôª¸ñÔÚ¹¤×÷±íÖеÄλÖþÍÒѾ­È·¶¨ÁË¡£Ò»µ©´´½¨ºó£¬µ¥Ôª¸ñµÄλÖÃÊDz»Äܹ»±ä¸üµÄ£¬¾¡¹Üµ¥Ôª¸ñµÄÄÚÈÝÊÇ¿ÉÒԸıäµÄ¡£µÚ¶þµã£¬µ¥Ôª¸ñµÄ¶¨Î»Êǰ´ÕÕÏÂÃæÕâÑùµÄ¹æÂÉ(column, row)£¬¶øÇÒϱ궼ÊÇ´Ó0¿ªÊ¼£¬ÀýÈ磬A1±»´æ´¢ÔÚ(0, 0)£¬B1±»´æ´¢ÔÚ(1, 0)¡£

¡¡¡¡×îºó£¬²»ÒªÍü¼Ç¹Ø±Õ´ò¿ªµÄExcel¹¤×÷±¡¶ÔÏó£¬ÒÔÊÍ·ÅÕ¼ÓõÄÄڴ棬²Î¼ûÏÂÃæµÄ´úÂëÆ¬¶Î£º

//дÈëExel¹¤×÷±í
wwb.write();

//¹Ø±ÕExcel¹¤×÷±¡¶ÔÏó
wwb.close();

¡¡¡¡Õâ¿ÉÄÜÓë¶ÁÈ¡ExcelÎļþµÄ²Ù×÷ÓÐÉÙÉÙ²»Í¬£¬ÔڹرÕExcel¶ÔÏó֮ǰ£¬Äã±ØÐëÒªÏȵ÷ÓÃwrite()·½·¨£¬ÒòΪÏÈǰµÄ²Ù×÷¶¼ÊÇ´æ´¢ÔÚ»º´æÖеģ¬ËùÒÔҪͨ¹ý¸Ã·½·¨½«²Ù×÷µÄÄÚÈݱ£´æÔÚÎļþÖС£Èç¹ûÄãÏȹرÕÁËExcel¶ÔÏó£¬ÄÇôֻÄܵõ½Ò»ÕſյŤ×÷±¡ÁË¡£

¡¡¡¡3¡¢¿½±´¡¢¸üÐÂExcel¹¤×÷±¡

¡¡¡¡½ÓÏÂÀ´¼òÒª½éÉÜÒ»ÏÂÈçºÎ¸üÐÂÒ»¸öÒѾ­´æÔڵŤ×÷±¡£¬Ö÷ÒªÊÇÏÂÃæ¶þ²½²Ù×÷£¬µÚÒ»²½Êǹ¹ÔìÖ»¶ÁµÄExcel¹¤×÷±¡£¬µÚ¶þ²½ÊÇÀûÓÃÒѾ­´´½¨µÄExcel¹¤×÷±¡´´½¨ÐµĿÉдÈëµÄExcel¹¤×÷±¡£¬²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º(ÍêÕû´úÂë¼ûExcelModifying.java)

//´´½¨Ö»¶ÁµÄExcel¹¤×÷±¡µÄ¶ÔÏó
jxl.Workbook rw = jxl.Workbook.getWorkbook(new File(sourcefile));

//´´½¨¿ÉдÈëµÄExcel¹¤×÷±¡¶ÔÏó
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile), rw);

//¶ÁÈ¡µÚÒ»ÕŹ¤×÷±í
jxl.write.WritableSheet ws = wwb.getSheet(0);

//»ñµÃµÚÒ»¸öµ¥Ôª¸ñ¶ÔÏó
jxl.write.WritableCell wc = ws.getWritableCell(0, 0);

//Åжϵ¥Ôª¸ñµÄÀàÐÍ, ×ö³öÏàÓ¦µÄת»¯
if(wc.getType() == CellType.LABEL)
{
Label l = (Label)wc;
l.setString("The value has been modified.");
}

//дÈëExcel¶ÔÏó
wwb.write();

//¹Ø±Õ¿ÉдÈëµÄExcel¶ÔÏó
wwb.close();

//¹Ø±ÕÖ»¶ÁµÄExcel¶ÔÏó
rw.close();

¡¡¡¡Ö®ËùÒÔʹÓÃÕâÖÖ·½Ê½¹¹½¨Excel¶ÔÏó£¬ÍêÈ«ÊÇÒòΪЧÂʵÄÔ­Òò£¬ÒòΪÉÏÃæµÄʾÀý²ÅÊÇAPIµÄÖ÷ÒªÓ¦Óá£ÎªÁËÌá¸ßÐÔÄÜ£¬ÔÚ¶ÁÈ¡¹¤×÷±íʱ£¬ÓëÊý¾ÝÏà¹ØµÄһЩÊä³öÐÅÏ¢£¬ËùÓеĸñʽÐÅÏ¢£¬È磺×ÖÌå¡¢ÑÕÉ«µÈµÈ£¬ÊDz»±»´¦ÀíµÄ£¬ÒòΪÎÒÃǵÄÄ¿µÄÊÇ»ñµÃÐÐÊý¾ÝµÄÖµ£¬¼ÈʹûÓÐÁËÐÞÊΣ¬Ò²²»»á¶ÔÐÐÊý¾ÝµÄÖµ²úÉúʲôӰÏ졣ΨһµÄ²»ÀûÖ®´¦¾ÍÊÇ£¬ÔÚÄÚ´æÖлáͬʱ±£´æÁ½¸öͬÑùµÄ¹¤×÷±í£¬ÕâÑùµ±¹¤×÷±íÌå»ý±È½Ï´óʱ£¬»áÕ¼ÓÃÏ൱´óµÄÄڴ棬µ«ÏÖÔÚºÃÏñÄÚ´æµÄ´óС²¢²»ÊÇʲô¹Ø¼üÒòËØÁË¡£

¡¡¡¡Ò»µ©»ñµÃÁË¿ÉдÈëµÄ¹¤×÷±í¶ÔÏó£¬ÎÒÃǾͿÉÒÔ¶Ôµ¥Ôª¸ñ¶ÔÏó½øÐиüеIJÙ×÷ÁË£¬ÔÚÕâÀïÎÒÃDz»±Øµ÷ÓÃAPIÌṩµÄadd()·½·¨£¬ÒòΪµ¥Ôª¸ñÒѾ­ÓÚ¹¤×÷±íµ±ÖУ¬ËùÒÔÎÒÃÇÖ»ÐèÒªµ÷ÓÃÏàÓ¦µÄsetXXX()·½·¨£¬¾Í¿ÉÒÔÍê³É¸üеIJÙ×÷ÁË¡£

¡¡¡¡¾¡µ¥Ôª¸ñÔ­Óеĸñʽ»¯ÐÞÊÎÊDz»ÄÜÈ¥µôµÄ£¬ÎÒÃÇ»¹ÊÇ¿ÉÒÔ½«Ðµĵ¥Ôª¸ñÐÞÊμÓÉÏÈ¥£¬ÒÔʹµ¥Ôª¸ñµÄÄÚÈÝÒÔ²»Í¬µÄÐÎʽ±íÏÖ¡£

¡¡¡¡ÐÂÉú³ÉµÄ¹¤×÷±í¶ÔÏóÊÇ¿ÉдÈëµÄ£¬ÎÒÃdzýÁ˸üÐÂÔ­Óеĵ¥Ôª¸ñÍ⣬»¹¿ÉÒÔÌí¼Óеĵ¥Ôª¸ñµ½¹¤×÷±íÖУ¬ÕâÓëʾÀý2µÄ²Ù×÷ÊÇÍêȫһÑùµÄ¡£

¡¡¡¡×îºó£¬²»ÒªÍü¼Çµ÷ÓÃwrite()·½·¨£¬½«¸üеÄÄÚÈÝдÈëµ½ÎļþÖУ¬È»ºó¹Ø±Õ¹¤×÷±¡¶ÔÏó£¬ÕâÀïÓÐÁ½¸ö¹¤×÷±¡¶ÔÏóÒª¹Ø±Õ£¬Ò»¸öÊÇÖ»¶ÁµÄ£¬ÁíÍâÒ»¸öÊÇ¿ÉдÈëµÄ¡£

Õª×Ô£ºhttp://www.54bk.com/more.asp?name=ninim&id=2563


zzw0598 ·¢±íÓÚ:2005.03.29 09:18 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(3714´Î) :: ÆÀÂÛ (766)
===========================================================
randomÀàµÄÓ¦ÓÃ
===========================================================
 
ramdomµÄÓ¦Óà ת×Ô java-cn

ÔÚJ2MEÖУ¬ÓÉÓڴ󲿷ֵÄÓÎÏ·¶¼»áÉæ¼°µ½Ëæ»úÐÔµÄʼþ£¬RandomÀà×ÔÈ»¾Í³ÉΪJ2ME³ÌÐòÔ±¾­³£Ê¹ÓõÄÒ»¸öÀàÁË¡£µ«ÊǶÔÓÚÐÂÊÖÀ´Ëµ£¬RandomÀà¿´ËÆ¼òµ¥£¬Ò²ÓпÉÄÜ»á³öÏÖÕâÑùÄÇÑùµÄ´íÎó¡£ËùÒÔÔÚÕâÀï°ÑÎÒ¶ÔÓÚÕâ¸öÀàµÄʹÓÃÐĵÃ×ܽáһϡ£

randomÀàÔÚCLDC1.0ÖоÍÒѾ­¶¨ÒåÁË¡£Õâ¸öÀàÓÐÁ½¸ö¹¹Ô캯ÊýRandom() ºÍRandom(long seed) ²¢ÇÒÌṩÁËËĸö³£Ó÷½·¨:

next(int bits)
nextInt()
nextLong()
setSeed(long seed)

ÆäÖÐnext(int bits)ÓÃÀ´²úÉúÖ¸¶¨·¶Î§µÄËæ»úÊý£¬¼´£º
next(1)²úÉú2µÄ1´Î·½Ö®ÄÚµÄËæ»úÊý
next(2)²úÉú2µÄ2´Î·½Ö®ÄÚµÄËæ»úÊý
next(3)²úÉú2µÄ3´Î·½Ö®ÄÚµÄËæ»úÊý
...............................
next(n)²úÉú2µÄn´Î·½Ö®ÄÚµÄËæ»úÊý
...............................
next(32)²úÉú2µÄ32´Î·½Ö®ÄÚµÄËæ»úÊý£¬¾ÍÏ൱ÓÚnextInt£¨£©ÁË
nextInt()ÓÃÀ´²úÉúËæ»úÕûÊý£¬×î´ó2µÄ32´Î·½
nextLong()ÓÃÀ´²úÉúËæ»ú³¤ÕûÊý£¬×î´ó2µÄ64´Î·½
setSeed(long seed) ÓÃÓÚÉè¶¨Ëæ»úÊýµÄÖÖ×Ó£¬¼´ÕâÀïµÄseed¡£Ëæ»úÊýÖÖ×ÓµÄÓô¦ÊÇ£ºÒ»°ã˵À´£¬ÕâÀïµÄRandomÀà²úÉúËæ»úÊýÊÇÎ±Ëæ»úÊý£¬ÊÇϵͳ²ÉÓÃÌØ¶¨µÄËã·¨Éú³É³öÀ´µÄ£¬¹ØÓÚÕâÒ»µãÎÒÃÇ¿ÉÒÔ²ÉÓÃÒ»¸öÊÔÑéÀ´Ö¤Ã÷¡£·½·¨ÊÇnewÁ½¸öRandomÀàrandom1ºÍrandom2¡£¸÷×Ôµ÷ÓÃnextInt·½·¨10´Î£¬ÎÒÃÇ¿ÉÒÔ¿´³ö£¬ËäÈ»¸÷×Ô²úÉúµÄÊÇËæ»úÊý£¬µ«ÊÇÁ½¸öRandomÀà²úÉúµÄËæ»úÊý¶¼ÊÇÒ»ÑùµÄ¡£Õâ¾ÍʹµÃËæ»úÊý´æÔÚ×Å©¶´¡£Èç¹ûÕâÑùµÄËæ»úÊýÓÃÔÚ°²È«Ó¦ÓÃÉÏÃæ£¬¾Í´ï²»µ½Ô¤ÏëµÄЧ¹ûÁË¡£ËùÒÔRandomÀàÌṩÁËÕâ¸ö·½·¨£¬ÒÔ½øÒ»²½Ìá¸ßËæ»úÐÔ¡£

ÔÚÕâÀïÐèÒªÌØ±ðΪÐÂÊÖÅóÓÑÃÇÖ¸³öµÄÊÇ£¬ÎÒÃÇÔÚʹÓÃËæ»úÊýµÄʱºò£¬²»ÄÜÿ´Î¶¼new Ò»¸ö RandomÀà³öÀ´£¬ÓÖ²»Éè¶¨Ëæ»úÊýÖÖ×Ó£¬ÒòΪÄÇÑù×÷µÄ½á¹ûÊÇ£¬Ã¿´Î²úÉúµÄËæ»úÊý¶¼ÊÇÒ»ÑùµÄ¡£
½«Ò»¸ö¡°´íÎó¡±µÄÀý×ÓдÔÚÕâÀ
import java.util.Random;

import javax.microedition.midlet.*;

public class J2ME extends MIDlet {
private Random random;

public J2ME() {
}

protected void startApp() throws MIDletStateChangeException {
for (int i = 0; i < 20; i++) {
random=new Random();
System.out.println(random.nextInt());
}

}

protected void pauseApp() {
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
Õâ¸öÀý×Ó²úÉúµÄËæ»úÊýºÜ¶à¶¼ÊÇÏàͬµÄ¡£ÕýÈ·µÄ×ö·¨Ó¦¸ÃÊÇÔÚ protected void startApp() throws MIDletStateChangeException º¯ÊýÖÐ×ö³öÈçÏÂÐÞ¸Ä
random=new Random();
for (int i = 0; i < 20; i++) {
System.out.println(random.nextInt());
}
¹ØÓÚRandomÀàµÄ×ܽá¾Íµ½ÕâÀïÁË£¬ÏàÐÅ´ó¼Ò¶¼¿ÉÒÔÕýȷʹÓÃÕâ¸öÀàÁË¡£ºÇºÇ£¬Çë¶à¹ØÕÕ¡£
MSN£ºcuilichen@hotmail.com


zzw0598 ·¢±íÓÚ:2005.03.22 09:16 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(391´Î) :: ÆÀÂÛ (1)
===========================================================
¾­µäÕýÔò±í´ïʽ
===========================================================

ÕªÒª£ºÊÕ¼¯Ò»Ð©³£ÓõÄÕýÔò±í´ïʽ¡£

ÕýÔò±í´ïʽÓÃÓÚ×Ö·û´®´¦Àí£¬±íµ¥ÑéÖ¤µÈ³¡ºÏ£¬ÊµÓøßЧ£¬µ«Óõ½Ê±×ÜÊDz»Ì«°ÑÎÕ£¬ÒÔÖÂÍùÍùÒªÉÏÍø²éÒ»·¬¡£ÎÒ½«Ò»Ð©³£Óõıí´ïʽÊÕ²ØÔÚÕâÀ×÷±¸ÍüÖ®Óᣱ¾ÌùËæÊ±»á¸üС£

Æ¥ÅäÖÐÎÄ×Ö·ûµÄÕýÔò±í´ïʽ£º [u4e00-u9fa5]

Æ¥ÅäË«×Ö½Ú×Ö·û(°üÀ¨ºº×ÖÔÚÄÚ)£º[^x00-xff]

Ó¦Ó㺼ÆËã×Ö·û´®µÄ³¤¶È£¨Ò»¸öË«×Ö½Ú×Ö·û³¤¶È¼Æ2£¬ASCII×Ö·û¼Æ1£©

String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}

Æ¥Åä¿ÕÐеÄÕýÔò±í´ïʽ£ºn[s| ]*r

Æ¥ÅäHTML±ê¼ÇµÄÕýÔò±í´ïʽ£º/<(.*)>.*</1>|<(.*) />/

Æ¥ÅäÊ×β¿Õ¸ñµÄÕýÔò±í´ïʽ£º(^s*)|(s*$)

Ó¦ÓãºjavascriptÖÐûÓÐÏñvbscriptÄÇÑùµÄtrimº¯Êý£¬ÎÒÃǾͿÉÒÔÀûÓÃÕâ¸ö±í´ïʽÀ´ÊµÏÖ£¬ÈçÏ£º

String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, "");
}

ÀûÓÃÕýÔò±í´ïʽ·Ö½âºÍת»»IPµØÖ·£º

ÏÂÃæÊÇÀûÓÃÕýÔò±í´ïʽƥÅäIPµØÖ·£¬²¢½«IPµØÖ·×ª»»³É¶ÔÓ¦ÊýÖµµÄJavascript³ÌÐò£º

function IP2V(ip)
{
re=/(d+).(d+).(d+).(d+)/g //Æ¥ÅäIPµØÖ·µÄÕýÔò±í´ïʽ
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}

²»¹ýÉÏÃæµÄ³ÌÐòÈç¹û²»ÓÃÕýÔò±í´ïʽ£¬¶øÖ±½ÓÓÃsplitº¯ÊýÀ´·Ö½â¿ÉÄܸü¼òµ¥£¬³ÌÐòÈçÏ£º

var ip="10.100.20.168"
ip=ip.split(".")
alert("IPÖµÊÇ£º"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

Æ¥ÅäEmailµØÖ·µÄÕýÔò±í´ïʽ£ºw+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

Æ¥ÅäÍøÖ·URLµÄÕýÔò±í´ïʽ£ºhttp://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

ÀûÓÃÕýÔò±í´ïʽȥ³ý×Ö´®ÖÐÖØ¸´µÄ×Ö·ûµÄËã·¨³ÌÐò£º

var s="abacabefgeeii"
var s1=s.replace(/(.).*1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //½á¹ûΪ£ºabcefgi

ÎÒÔ­À´ÔÚCSDNÉÏ·¢ÌùѰÇóÒ»¸ö±í´ïʽÀ´ÊµÏÖÈ¥³ýÖØ¸´×Ö·ûµÄ·½·¨£¬×îÖÕûÓÐÕÒµ½£¬ÕâÊÇÎÒÄÜÏëµ½µÄ×î¼òµ¥µÄʵÏÖ·½·¨¡£Ë¼Â·ÊÇʹÓúóÏòÒýÓÃÈ¡³ö°üÀ¨Öظ´µÄ×Ö·û£¬ÔÙÒÔÖØ¸´µÄ×Ö·û½¨Á¢µÚ¶þ¸ö±í´ïʽ£¬È¡µ½²»Öظ´µÄ×Ö·û£¬Á½Õß´®Á¬¡£Õâ¸ö·½·¨¶ÔÓÚ×Ö·û˳ÐòÓÐÒªÇóµÄ×Ö·û´®¿ÉÄܲ»ÊÊÓá£

µÃÓÃÕýÔò±í´ïʽ´ÓURLµØÖ·ÖÐÌáÈ¡ÎļþÃûµÄjavascript³ÌÐò£¬ÈçϽá¹ûΪpage1

s="http://www.9499.net/page1.htm"
s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2")
alert(s)

ÀûÓÃÕýÔò±í´ïʽÏÞÖÆÍøÒ³±íµ¥ÀïµÄÎı¾¿òÊäÈëÄÚÈÝ£º

ÓÃÕýÔò±í´ïʽÏÞÖÆÖ»ÄÜÊäÈëÖÐÎÄ£ºonkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"

ÓÃÕýÔò±í´ïʽÏÞÖÆÖ»ÄÜÊäÈëÈ«½Ç×Ö·û£º onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"

ÓÃÕýÔò±í´ïʽÏÞÖÆÖ»ÄÜÊäÈëÊý×Ö£ºonkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"

ÓÃÕýÔò±í´ïʽÏÞÖÆÖ»ÄÜÊäÈëÊý×ÖºÍÓ¢ÎÄ£ºonkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"

 
 

zzw0598 ·¢±íÓÚ:2005.03.11 17:40 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(384´Î) :: ÆÀÂÛ (0)
===========================================================
ÓÃÕýÔò±í´ïʽºÍjavascript¶Ô±íµ¥½øÐÐÈ«ÃæÑéÖ¤
===========================================================

´úÂ룺<!--
ʹÓÃʱÇ뽫ÏÂÃæµÄjavascript´úÂë´æµ½Ò»¸öµ¥Ò»µÄjsÎļþÖС£
1¡¢±íµ¥ÒªÇó
 <form name="formname" onSubmit="return validateForm(this)"></form>
 ½«¶Ô±íµ¥ÖеÄËùÓÐÒÔÏÂÀàÐ͵ÄÓòÒÀ´ÎÑéÖ¤£¬ËùÓÐÑéÖ¤ÊÇÈ¥³ýÁËǰµ¼ºÍºó׺¿Õ¸ñµÄ£¬Òª×¢ÒâÊÇÇø·Ö´óСдµÄ¡£
2¡¢¿ÕÖµÑéÖ¤
 ±íµ¥ÖÐÈÎÒâÓò¼ÓÉÏemptyInfoÊôÐÔ½«¶Ô´ËÓòÊÇ·ñΪ¿Õ½øÐÐÑéÖ¤£¨¿ÉÒÔºÍ×î´ó³¤¶ÈÑéÖ¤Ò»°ãÑéÖ¤·½Ê½Í¬Ê±Ê¹Óã©¡£
 ÎÞ´ËÊôÐÔÊÓΪ´ËÓòÔÊÐí¿ÕÖµ¡£
¡¡¡¡È磺<input type="text" name="fieldNamename" emptyInfo="×ֶβ»ÄÜΪ¿Õ£¡">
3¡¢×î´ó³¤¶ÈÑéÖ¤£¨¿ÉÒԺͿÕÖµÑéÖ¤¡¢Ò»°ãÑéÖ¤·½Ê½Í¬Ê±Ê¹Óã©£º
 <input type="text" name="fieldNamename" maxlength="20" lengthInfo="×î´ó³¤¶È²»Äܳ¬¹ý20£¡">
 »ò,<textarea maxlength="2000" lengthInfo="×î´ó³¤¶È²»Äܳ¬¹ý2000£¡">
3¡¢Ò»°ãÑéÖ¤·½Ê½(²»¶Ô¿ÕÖµ×öÑéÖ¤£©:
¡¡¡¡È磺<input type="text" validator="^(19|20)[0-9]{2}$" errorInfo="²»ÕýÈ·µÄÄê·Ý!" >
4¡¢±ê×¼ÑéÖ¤(²»ÓëÆäËüÑéÖ¤·½Ê½Í¬Ê±Ê¹Óã©£º
 È«²¿Í¨¹ý<input type="hidden">À´ÊµÏÖ£¬²¢ÇÒ²»ÐèÒªnameÊôÐÔÒÔÃâÌá½»µ½·þÎñÆ÷¡£
¡¡¡¡4.1¡¢ºÏ·¨ÈÕÆÚÑéÖ¤£º
  <input type="text" name="yearfieldName" value="2004">×¢£ºÕâÀïÒ²¿ÉÒÔÊÇ<select name="yearfieldName"></select>£¬ÒÔÏÂͬ
  <input type="text" name="monthfieldName" value="02">
  <input type="text" name="dayfieldName" value="03">
  <input type="hidden" validatorType="DateGroup" year="yearfieldName" month="monthfieldName" day="dayfieldName" errorInfo="²»ÕýÈ·µÄÈÕÆÚ!">
  yearfieldName¡¢monthfieldName¡¢dayfieldName·Ö±ðΪÄêÔÂÈÕ×ֶΣ¬ÔºÍÈÕ¿ÉÒÔÊÇÁ½Î»(MM)»òһλ¸ñʽ(M)£¬
  ´Ë´¦²»¶Ôÿ¸ö×ֶηֱð¼ìÑé(Èç¹ûÒª¼ìÑ飬ÇëÔÚÄêÔÂÈÕÈý¸öÓò·Ö±ðʹÓÃÇ°ÃæµÄÒ»°ãÑéÖ¤·½Ê½£©£¬Ö»¶ÔÈÕÆÚµÄ×î´óÖµÊÇ·ñºÏ·¨¼ì²é;
 4.2¡¢ÈÕÆÚ¸ñʽÑéÖ¤(Çë×¢Ò⣬´ËÑéÖ¤²»¶ÔÈÕÆÚÊÇ·ñÓÐЧ½øÐÐÑéÖ¤£¬»¹Î´ÕÒµ½´Ó¸ñʽÖеõ½ÄêÔÂÈÕÊý¾ÝµÄ·½·¨^_^)£º
  <input type="text" name="datefieldName" value="2003-01-03 21:31:00">
  <input type="hidden" validatorType="Date" fieldName="datefieldName"; format="yyyy-MM-dd HH:mm:ss" errorInfo="²»ÕýÈ·µÄÈÕÆÚ!">
  ÆäÖиñʽ½ö¶Ôy¡¢M¡¢d¡¢H¡¢m¡¢s½øÐÐÖ§³Ö(ÆäËü×Ö·ûÊÓΪ·Çʱ¼äµÄ×Ö·û)
 4.3¡¢ÁбíÑéÖ¤£º
  ¼ìÑéÁбí(checkbox¡¢redio¡¢select)ÊÇ·ñÖÁÉÙÑ¡ÖÐÁËÒ»Ìõ¼Ç¼(¶ÔselectÖ÷ÒªÓÃÓÚ¶àÏîÑ¡Ôñ)
  <input type="checkbox" name="checkbox1">
  <input type="hidden" validatorType="Checkbox" fieldName="checkbox1" errorInfo="ÇëÖÁÉÙÑ¡ÖÐÒ»Ìõ¼Ç¼!">
  ÆäÖÐvalidatorType¿ÉÒÔÊÇCheckbox¡¢R¡¢Select;
  ¶ÔÓÚÒ»¸öselect±íµ¥£¬Èç¹ûÒªÇóÑ¡ÔñÒ»Ìõ²»ÄÜÊǵÚÒ»ÌõµÄ¼Ç¼£¬ÇëÓÃÏÂÁз½Ê½:
  <select name="select1" emptyInfo="ÇëÑ¡ÔñÒ»¸öÑ¡Ïî!">
  <option value="">==ÇëÑ¡Ôñ==</option>
  <option value="1">1</option>
  <select>
 4.4¡¢EmailÑéÖ¤£º
  <input type="text" name="email">
  <input type="hidden" fieldName="email" validatorType="Email" separator="," errorInfo="²»ÕýÈ·µÄEmail!">
  ÆäÖÐseparatorΪ¿ÉÑ¡Ï±íʾÊäÈë¶à¸öemailʱµÄ·Ö¸ô·û(ÎÞ´ËÑ¡ÏîÖ»ÄÜÊÇÒ»¸öµØÖ·£©
 4.5¡¢¼ÓÈëÆäËüjavascript²Ù×÷£º
 <script type="text/javascript">
  function functionname(){
    ×Ô¶¨Òå·½·¨
  }
 </script>
 ±íµ¥ÖмÓÈë<input type="hidden" validatorType="javascript" functionName="functionname">£¨´ËʱemptyInfoµÈÊôÐÔÎÞЧ£©
  Ê±½«µ÷ÓÃfunctionÊôÐÔÖÐÖ¸¶¨µÄjavascript·½·¨£¨ÒªÇó·½·¨·µ»Øtrue»òfalse£¬·µ»Øfalse½«²»ÔÙÑéÖ¤±íµ¥£¬Ò²²»Ìá½»±íµ¥)¡£
5¡¢ÔÚ±íµ¥Í¨¹ýÑéÖ¤ÌύǰdisableÒ»¸ö°´Å¥£¨Ò²¿É½«ÆäËüÓòdisable,²»ÄÜÓëÆäËüÑé֤ͬÔÚÒ»¸öÓò)£¬²»ÒªÇó°´Å¥ÊÇ±íµ¥ÖеÄ×îºóÒ»¸ö
 <input type="button" name="Ìá½»" validatorType="disable">
6¡¢²»ÑéÖ¤±íµ¥
¡¡¡¡<input type="hidden" name="validate" value="0" functionName="functionname">
 µ±validatorÓòֵΪ0ʱ²»¶Ô±íµ¥½øÐÐÑéÖ¤£¬Ö±½ÓÌá½»±íµ¥»òÖ´ÐÐÖ¸¶¨function²¢·µ»ØtrueºóÌá½»±íµ¥
 functionNameΪ¿ÉÑ¡

-->
<script type="text/javascript">
function getStringLength(str){
  var endvalue=0;
  var sourcestr=new String(str);
  var tempstr;
  for (var strposition = 0; strposition < sourcestr.length; strposition ++) {
    tempstr=sourcestr.charAt(strposition);
    if (tempstr.charCodeAt(0)>255 || tempstr.charCodeAt(0)<0) {
      endvalue=endvalue+2;
    } else {
      endvalue=endvalue+1;
    }
  }
  return(endvalue);
}
function trim(str){
  if(str==null) return "";
  if(str.length==0) return "";
  var i=0,j=str.length-1,c;
  for(;i<str.length;i++){
    c=str.charAt(i);
    if(c!=' ') break;
  }
  for(;j>-1;j--){
    c=str.charAt(j);
    if(c!=' ') break;
  }
  if(i>j) return "";
  return str.substring(i,j+1);
}
function validateDate(date,format,alt){
  var time=trim(date.value);
  if(time=="") return;
  var reg=format;
  var reg=reg.replace(/yyyy/,"[0-9]{4}");
  var reg=reg.replace(/yy/,"[0-9]{2}");
  var reg=reg.replace(/MM/,"((0[1-9])|1[0-2])");
  var reg=reg.replace(/M/,"(([1-9])|1[0-2])");
  var reg=reg.replace(/dd/,"((0[1-9])|([1-2][0-9])|30|31)");
  var reg=reg.replace(/d/,"([1-9]|[1-2][0-9]|30|31))");
  var reg=reg.replace(/HH/,"(([0-1][0-9])|20|21|22|23)");
  var reg=reg.replace(/H/,"([0-9]|1[0-9]|20|21|22|23)");
  var reg=reg.replace(/mm/,"([0-5][0-9])");
  var reg=reg.replace(/m/,"([0-9]|([1-5][0-9]))");
  var reg=reg.replace(/ss/,"([0-5][0-9])");
  var reg=reg.replace(/s/,"([0-9]|([1-5][0-9]))");
  reg=new RegExp("^"+reg+"$");
  if(reg.test(time)==false){//ÑéÖ¤¸ñʽÊÇ·ñºÏ·¨
    alert(alt);
    date.focus();
    return false;
  }
  return true;
}
function validateDateGroup(year,month,day,alt){
  var array=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  var y=parseInt(year.value);
  var m=parseInt(month.value);
  var d=parseInt(day.value);
  var maxday=array[m-1];
  if(m==2){
    if((y%4==0&&y%100!=0)||y%400==0){
      maxday=29;
    }
  }
  if(d>maxday){
    alert(alt);
    return false;
  }
  return true;
}
function validateCheckbox(obj,alt){
  var rs=false;
  if(obj!=null){
    if(obj.length==null){
      return obj.checked;
    }
    for(i=0;i<obj.length;i++){
      if(obj[i].checked==true){
        return true;
      }
    }
  }
  alert(alt);
  return rs;
}
function validateRadio(obj,alt){
  var rs=false;
  if(obj!=null){
    if(obj.length==null){
      return obj.checked;
    }
    for(i=0;i<obj.length;i++){
      if(obj[i].checked==true){
        return true;
      }
    }
  }
  alert(alt);
  return rs;
}
function validateSelect(obj,alt){
  var rs=false;
  if(obj!=null){
    for(i=0;i<obj.options.length;i++){
      if(obj.options[i].selected==true){
        return true;
      }
    }
  }
  alert(alt);
  return rs;
}
function validateEmail(email,alt,separator){
  var mail=trim(email.value);
  if(mail=="") return;
  var em;
  var myReg = /^[_a-z0-9]+@([_a-z0-9]+.)+[a-z0-9]{2,3}$/;
  if(separator==null){
    if(myReg.test(email.value)==false){
      alert(alt);
      email.focus();
      return false;
    }
  }
  else{
    em=email.value.split(separator);
    for(i=0;i<em.length;i++){
      em[i]=em[i].trim();
      if(em[i].length>0&&myReg.test(em[i])==false){
        alert(alt);
        email.focus();
        return false;
      }
    }
  }
  return true;
}
function validateForm(theForm){// ÈôÑé֤ͨ¹ýÔò·µ»Øtrue
  var disableList=new Array();
  var field = theForm.elements; // ½«±íµ¥ÖеÄËùÓÐÔªËØ·ÅÈëÊý×é
  for(var i = 0; i < field.length; i++){
    var vali=theForm.validate;
 if(vali!=null){
   if(vali.value=="0"){
     var fun=vali.functionName;
  if(fun!=null){
    return eval(fun+"()");
  }
  else{
    return true;
  }
   }
 }

    var empty=false;
    var value=trim(field[i].value);
    if(value.length==0){//ÊÇ·ñ¿ÕÖµ
      empty=true;
    }
    var emptyInfo=field[i].emptyInfo;//¿ÕÖµÑéÖ¤
    if(emptyInfo!=null&&empty==true){
      alert(emptyInfo);
      field[i].focus();
      return false;
    }
    var lengthInfo=field[i].lengthInfo;//×î´ó³¤¶ÈÑéÖ¤
    if(lengthInfo!=null&&getStringLength(value)>field[i].maxLength){
      alert(lengthInfo);
      field[i].focus();
      return false;
    }

    var validatorType=field[i].validatorType;
    if(validatorType!=null){//ÆäËüjavascript
      var rs=true;
      if(validatorType=="javascript"){
        eval("rs="+field[i].functionName+"()");
        if(rs==false){
          return false;
        }
        else{
          continue;
        }
      }
      else if(validatorType=="disable"){//Ìá½»±íµ¥Ç°disableµÄ°´Å¥
        disableList.length++;
        disableList[disableList.length-1]=field[i];
        continue;
      }
      else if(validatorType=="Date"){
        rs=validateDate(theForm.elements(field[i].fieldName),field[i].format,field[i].errorInfo);
      }
      else if(validatorType=="DateGroup"){
        rs=validateDateGroup(theForm.elements(field[i].year),theForm.elements(field[i].month),theForm.elements(field[i].day),field[i].errorInfo);
      }
      else if(validatorType=="Checkbox"){
        rs=validateCheckbox(theForm.elements(field[i].fieldName),field[i].errorInfo);
      }
      else if(validatorType=="Radio"){
        rs=validateRadio(theForm.elements(field[i].fieldName),field[i].errorInfo);
      }
      else if(validatorType=="Select"){
        rs=validateSelect(theForm.elements(field[i].fieldName),field[i].errorInfo);
      }
      else if(validatorType=="Email"){
        rs=validateEmail(theForm.elements(field[i].fieldName),field[i].errorInfo);
      }
      else{
        alert("ÑéÖ¤ÀàÐͲ»±»Ö§³Ö, fieldName: "+field[i].name);
        return false;
      }
      if(rs==false){
        return false;
      }
    }
    else{//Ò»°ãÑéÖ¤
      if(empty==false){
        var v = field[i].validator; // »ñÈ¡ÆävalidatorÊôÐÔ
        if(!v) continue;            // Èç¹û¸ÃÊôÐÔ²»´æÔÚ,ºöÂÔµ±Ç°ÔªËØ
        var reg=new RegExp(v);
        if(reg.test(field[i].value)==false){
          alert(field[i].errorInfo);
          field[i].focus();
          return false;
        }
      }
    }
  }
  for(i=0;i<disableList.length;i++){
    disableList[i].disabled=true;
  }
  return true;
}
</script>


zzw0598 ·¢±íÓÚ:2005.03.11 08:53 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(490´Î) :: ÆÀÂÛ (1)
===========================================================
JavaÊý¾Ý¿â±à³ÌÖеö³£Óü¼ÇÉ
===========================================================
 JavaÊý¾Ý¿â±à³ÌÖеö³£Óü¼ÇÉ ×ª×Ôjava-cn

1¡¢javaÊý¾Ý¿â²Ù×÷»ù±¾Á÷³Ì

¡¡¡¡2¡¢¼¸¸ö³£ÓõÄÖØÒª¼¼ÇÉ£º

¡¡¡¡¿É¹ö¶¯¡¢¸üеļǼ¼¯

¡¡¡¡ÅúÁ¿¸üÐÂ

¡¡¡¡ÊÂÎñ´¦Àí

¡¡¡¡javaÊý¾Ý¿â²Ù×÷»ù±¾Á÷³Ì£ºÈ¡µÃÊý¾Ý¿âÁ¬½Ó - Ö´ÐÐsqlÓï¾ä - ´¦ÀíÖ´Ðнá¹û - ÊÍ·ÅÊý¾Ý¿âÁ¬½Ó

¡¡¡¡1¡¢È¡µÃÊý¾Ý¿âÁ¬½Ó

¡¡¡¡1£©ÓÃDriverManagerÈ¡Êý¾Ý¿âÁ¬½Ó

¡¡¡¡Àý×Ó£º

String className,url,uid,pwd;
className = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;
uid = "system";
pwd = "manager";
Class.forName(className);
Connection cn = DriverManager.getConnection(url,uid,pwd);

¡¡¡¡2£©ÓÃjndi(javaµÄÃüÃûºÍĿ¼·þÎñ)·½Ê½

¡¡¡¡Àý×Ó

String jndi = "jdbc/db";
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup(jndi);
Connection cn = ds.getConnection();

¡¡¡¡¶àÓÃÓÚjspÖÐ

¡¡¡¡2¡¢Ö´ÐÐsqlÓï¾ä

¡¡¡¡1£©ÓÃStatementÀ´Ö´ÐÐsqlÓï¾ä

String sql;
Statement sm = cn.createStatement();
sm.executeQuery(sql); // Ö´ÐÐÊý¾Ý²éѯÓï¾ä£¨select£©
sm.executeUpdate(sql); // Ö´ÐÐÊý¾Ý¸üÐÂÓï¾ä£¨delete¡¢update¡¢insert¡¢dropµÈ£©statement.close();

¡¡¡¡2£©ÓÃPreparedStatementÀ´Ö´ÐÐsqlÓï¾ä

String sql;
sql = "insert into user (id,name) values (?,?)";
PreparedStatement ps = cn.prepareStatement(sql);
ps.setInt(1,xxx);
ps.setString(2,xxx);
...
ResultSet rs = ps.executeQuery(); // ²éѯ
int c = ps.executeUpdate(); // ¸üÐÂ

¡¡¡¡3¡¢´¦ÀíÖ´Ðнá¹û

¡¡¡¡²éѯÓï¾ä£¬·µ»Ø¼Ç¼¼¯ResultSet¡£

¡¡¡¡¸üÐÂÓï¾ä£¬·µ»ØÊý×Ö£¬±íʾ¸Ã¸üÐÂÓ°ÏìµÄ¼Ç¼Êý¡£

¡¡¡¡ResultSetµÄ·½·¨£º

¡¡¡¡1¡¢next()£¬½«ÓαêÍùºóÒÆ¶¯Ò»ÐУ¬Èç¹û³É¹¦·µ»Øtrue£»·ñÔò·µ»Øfalse¡£

¡¡¡¡2¡¢getInt("id")»ògetSting("name")£¬·µ»Øµ±Ç°ÓαêÏÂij¸ö×ֶεÄÖµ¡£

¡¡¡¡3¡¢ÊÍ·ÅÁ¬½Ó¡£

cn.close();

¡¡¡¡Ò»°ã£¬ÏȹرÕResultSet£¬È»ºó¹Ø±ÕStatement£¨»òÕßPreparedStatement£©£»×îºó¹Ø±ÕConnection

¡¡¡¡¿É¹ö¶¯¡¢¸üеļǼ¼¯

¡¡¡¡1¡¢´´½¨¿É¹ö¶¯¡¢¸üеÄStatement

Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);

¡¡¡¡¸ÃStatementÈ¡µÃµÄResultSet¾ÍÊǿɹö¶¯µÄ

¡¡¡¡2¡¢´´½¨PreparedStatementʱָ¶¨²ÎÊý

PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

ResultSet.absolute(9000);

¡¡¡¡ÅúÁ¿¸üÐÂ

¡¡¡¡1¡¢Statement

Statement sm = cn.createStatement();
sm.addBatch(sql1);
sm.addBatch(sql2);
...
sm.executeBatch()

¡¡¡¡Ò»¸öStatement¶ÔÏ󣬿ÉÒÔÖ´Ðжà¸ösqlÓï¾äÒÔºó£¬ÅúÁ¿¸üС£Õâ¶à¸öÓï¾ä¿ÉÒÔÊÇdelete¡¢update¡¢insertµÈ»ò¼æÓÐ

¡¡¡¡2¡¢PreparedStatement

PreparedStatement ps = cn.preparedStatement(sql);
{
¡¡ps.setXXX(1,xxx);
¡¡...
¡¡ps.addBatch();
}
ps.executeBatch();

¡¡¡¡Ò»¸öPreparedStatement£¬¿ÉÒÔ°ÑÒ»¸ösqlÓï¾ä£¬±ä»»²ÎÊý¶à´ÎÖ´ÐУ¬Ò»´Î¸üС£

¡¡¡¡ÊÂÎñµÄ´¦Àí

¡¡¡¡1¡¢¹Ø±ÕConnectionµÄ×Ô¶¯Ìá½»

cn.setAutoCommit(false);

¡¡¡¡2¡¢Ö´ÐÐһϵÁÐsqlÓï¾ä

¡¡¡¡Òªµã£ºÖ´ÐÐÿһ¸öеÄsqlÓï¾äǰ£¬ÉÏÒ»´ÎÖ´ÐÐsqlÓï¾äµÄStatement£¨»òÕßPreparedStatemet£©±ØÐëÏÈclose

Statement sm ;
sm = cn.createStatement(insert into user...);
sm.executeUpdate();
sm.close();

sm = cn.createStatement("insert into corp...);
sm.executeUpdate();
sm.close();

¡¡¡¡3¡¢Ìá½»

cn.commit();

¡¡¡¡4¡¢Èç¹û·¢ÉúÒì³££¬ÄÇô»Ø¹ö

cn.rollback();


zzw0598 ·¢±íÓÚ:2005.02.28 22:20 ::·ÖÀà: ( java¿ª·¢ ) ::ÔĶÁ:(375´Î) :: ÆÀÂÛ (0)
===========================================================
ÉîÈëdz³öjava¶àÏß³Ì
===========================================================

ת×Ôjava-cn.com

Ò»£ºÀí½â¶àÏß³Ì

????¶àÏß³ÌÊÇÕâÑùÒ»ÖÖ»úÖÆ£¬ËüÔÊÐíÔÚ³ÌÐòÖв¢·¢Ö´Ðжà¸öÖ¸ÁîÁ÷£¬Ã¿¸öÖ¸ÁîÁ÷¶¼³ÆÎªÒ»¸öỊ̈߳¬±Ë´Ë¼ä»¥Ïà¶ÀÁ¢¡£ Ïß³ÌÓÖ³ÆÎªÇáÁ¿¼¶½ø³Ì£¬ËüºÍ½ø³ÌÒ»ÑùÓµÓжÀÁ¢µÄÖ´ÐпØÖÆ£¬ÓɲÙ×÷ϵͳ¸ºÔðµ÷¶È£¬Çø±ðÔÚÓÚÏß³ÌûÓжÀÁ¢µÄ´æ´¢¿Õ¼ä£¬¶øÊǺÍËùÊô½ø³ÌÖÐµÄÆäËüÏ̹߳²ÏíÒ»¸ö´æ´¢¿Õ¼ä£¬ÕâʹµÃÏ̼߳äµÄͨÐÅÔ¶½Ï½ø³Ì¼òµ¥¡£

????¶à¸öÏ̵߳ÄÖ´ÐÐÊDz¢·¢µÄ£¬Ò²¾ÍÊÇÔÚÂß¼­ÉÏ¡°Í¬Ê±¡±£¬¶ø²»¹ÜÊÇ·ñÊÇÎïÀíÉϵġ°Í¬Ê±¡±¡£Èç¹ûϵͳֻÓÐÒ»¸öCPU£¬ÄÇ̫;ÕýµÄ¡°Í¬Ê±¡±ÊDz»¿ÉÄܵ쬵«ÊÇÓÉÓÚCPUµÄËٶȷdz£¿ì£¬Óû§¸Ð¾õ²»µ½ÆäÖеÄÇø±ð£¬Òò´ËÎÒÃÇÒ²²»ÓùØÐÄËü£¬Ö»ÐèÒªÉèÏë¸÷¸öÏß³ÌÊÇͬʱִÐм´¿É¡£
¶àÏ̺߳ʹ«Í³µÄµ¥Ïß³ÌÔÚ³ÌÐòÉè¼ÆÉÏ×î´óµÄÇø±ðÔÚÓÚ£¬ÓÉÓÚ¸÷¸öÏ̵߳ĿØÖÆÁ÷±Ë´Ë¶ÀÁ¢£¬Ê¹µÃ¸÷¸öÏß³ÌÖ®¼äµÄ´úÂëÊÇÂÒÐòÖ´Ðеģ¬ÓÉ´Ë´øÀ´µÄÏ̵߳÷¶È£¬Í¬²½µÈÎÊÌ⣬½«ÔÚÒÔºó̽ÌÖ¡£

¡¡¡¡¶þ£ºÔÚJavaÖÐʵÏÖ¶àÏß³Ì

????ÎÒÃDz»·ÁÉèÏ룬ΪÁË´´½¨Ò»¸öеÄỊ̈߳¬ÎÒÃÇÐèÒª×öЩʲô£¿ºÜÏÔÈ»£¬ÎÒÃDZØÐëÖ¸Ã÷Õâ¸öÏß³ÌËùÒªÖ´ÐеĴúÂ룬¶øÕâ¾ÍÊÇÔÚJavaÖÐʵÏÖ¶àÏß³ÌÎÒÃÇËùÐèÒª×öµÄÒ»ÇУ¡

????ÕæÊÇÉñÆæ£¡JavaÊÇÈçºÎ×öµ½ÕâÒ»µãµÄ£¿Í¨¹ýÀ࣡×÷Ϊһ¸öÍêÈ«ÃæÏò¶ÔÏóµÄÓïÑÔ£¬JavaÌṩÁËÀà java.lang.Thread À´·½±ã¶àÏ̱߳à³Ì£¬Õâ¸öÀàÌṩÁË´óÁ¿µÄ·½·¨À´·½±ãÎÒÃÇ¿ØÖÆ×Ô¼ºµÄ¸÷¸öỊ̈߳¬ÎÒÃÇÒÔºóµÄÌÖÂÛ¶¼½«Î§ÈÆÕâ¸öÀà½øÐС£

????ÄÇôÈçºÎÌṩ¸ø Java ÎÒÃÇÒªÏß³ÌÖ´ÐеĴúÂëÄØ£¿ÈÃÎÒÃÇÀ´¿´Ò»¿´ Thread Àà¡£Thread Àà×îÖØÒªµÄ·½·¨ÊÇ run() £¬ËüΪThread ÀàµÄ·½·¨ start() Ëùµ÷Óã¬ÌṩÎÒÃǵÄÏß³ÌËùÒªÖ´ÐеĴúÂ롣ΪÁËÖ¸¶¨ÎÒÃÇ×Ô¼ºµÄ´úÂ룬ֻÐèÒª¸²¸ÇËü£¡

¡¡¡¡·½·¨Ò»£º¼Ì³Ð Thread À࣬¸²¸Ç·½·¨ run()£¬ÎÒÃÇÔÚ´´½¨µÄ Thread ÀàµÄ×ÓÀàÖÐÖØÐ´ run() ,¼ÓÈëÏß³ÌËùÒªÖ´ÐеĴúÂë¼´¿É¡£ÏÂÃæÊÇÒ»¸öÀý×Ó£º
public class MyThread extends Thread {
¡¡int count= 1, number;
¡¡public MyThread(int num) {
¡¡¡¡number = num;
¡¡¡¡System.out.println("´´½¨Ïß³Ì " + number);
¡¡}
¡¡public void run() {
¡¡¡¡while(true) {
¡¡¡¡¡¡System.out.println("Ïß³Ì " + number + ":¼ÆÊý " + count);
¡¡¡¡¡¡if(++count== 6) return;
¡¡¡¡}
¡¡}
¡¡public static void main(String args[]) {
¡¡¡¡for(int i = 0; i < 5; i++) new MyThread(i+1).start();
¡¡}
}

????ÕâÖÖ·½·¨¼òµ¥Ã÷ÁË£¬·ûºÏ´ó¼ÒµÄϰ¹ß£¬µ«ÊÇ£¬ËüÒ²ÓÐÒ»¸öºÜ´óµÄȱµã£¬ÄǾÍÊÇÈç¹ûÎÒÃǵÄÀàÒѾ­´ÓÒ»¸öÀà¼Ì³Ð£¨ÈçС³ÌÐò±ØÐë¼Ì³Ð×Ô Applet Àࣩ£¬ÔòÎÞ·¨Ôټ̳РThread À࣬ÕâʱÈç¹ûÎÒÃÇÓÖ²»Ï뽨Á¢Ò»¸öеÄÀ࣬Ӧ¸ÃÔõô°ìÄØ£¿

????ÎÒÃDz»·ÁÀ´Ì½Ë÷Ò»ÖÖÐµķ½·¨£ºÎÒÃDz»´´½¨ Thread ÀàµÄ×ÓÀ࣬¶øÊÇÖ±½ÓʹÓÃËü£¬ÄÇôÎÒÃÇÖ»Äܽ«ÎÒÃǵķ½·¨×÷Ϊ²ÎÊý´«µÝ¸ø Thread ÀàµÄʵÀý£¬ÓеãÀàËÆ»Øµ÷º¯Êý¡£µ«ÊÇ Java ûÓÐÖ¸Õ룬ÎÒÃÇÖ»ÄÜ´«µÝÒ»¸ö°üº¬Õâ¸ö·½·¨µÄÀàµÄʵÀý¡£ÄÇôÈçºÎÏÞÖÆÕâ¸öÀà±ØÐë°üº¬ÕâÒ»·½·¨ÄØ£¿µ±È»ÊÇʹÓýӿڣ¡£¨ËäÈ»³éÏóÀàÒ²¿ÉÂú×㣬µ«ÊÇÐèÒª¼Ì³Ð£¬¶øÎÒÃÇÖ®ËùÒÔÒª²ÉÓÃÕâÖÖз½·¨£¬²»¾ÍÊÇΪÁ˱ÜÃâ¼Ì³Ð´øÀ´µÄÏÞÖÆÂ𣿣©
Java ÌṩÁË½Ó¿Ú java.lang.Runnable À´Ö§³ÖÕâÖÖ·½·¨¡£

¡¡¡¡·½·¨¶þ£ºÊµÏÖ Runnable ½Ó¿Ú

????Runnable ½Ó¿ÚÖ»ÓÐÒ»¸ö·½·¨ run()£¬ÎÒÃÇÉùÃ÷×Ô¼ºµÄÀàʵÏÖ Runnable ½Ó¿Ú²¢ÌṩÕâÒ»·½·¨£¬½«ÎÒÃǵÄÏ̴߳úÂëдÈëÆäÖУ¬¾ÍÍê³ÉÁËÕâÒ»²¿·ÖµÄÈÎÎñ¡£µ«ÊÇ Runnable ½Ó¿Ú²¢Ã»ÓÐÈκζÔÏ̵߳ÄÖ§³Ö£¬ÎÒÃÇ»¹±ØÐë´´½¨ Thread ÀàµÄʵÀý£¬ÕâÒ»µãͨ¹ý Thread ÀàµÄ¹¹Ô캯Êýpublic Thread(Runnable target);À´ÊµÏÖ¡£ÏÂÃæÊÇÒ»¸öÀý×Ó£º
public class MyThread implements Runnable {
¡¡int count= 1, number;
¡¡public MyThread(int num) {
¡¡¡¡number = num;
¡¡¡¡System.out.println("´´½¨Ïß³Ì " + number);
¡¡}
¡¡public void run() {
¡¡¡¡while(true) {
¡¡¡¡¡¡System.out.println("Ïß³Ì " + number + ":¼ÆÊý " + count);
¡¡¡¡¡¡if(++count== 6) return;
¡¡¡¡}
¡¡}
¡¡public static void main(String args[]) {
¡¡¡¡for(int i = 0; i < 5; i++) new Thread(new MyThread(i+1)).start();
¡¡}
}

????ÑϸñµØËµ£¬´´½¨ Thread ×ÓÀàµÄʵÀýÒ²ÊÇ¿ÉÐе쬵«ÊDZØÐë×¢ÒâµÄÊÇ£¬¸Ã×ÓÀà±ØÐëûÓи²¸Ç Thread ÀàµÄ run ·½·¨£¬·ñÔò¸ÃÏß³ÌÖ´ÐеĽ«ÊÇ×ÓÀàµÄ run ·½·¨£¬¶ø²»ÊÇÎÒÃÇÓÃÒÔʵÏÖRunnable ½Ó¿ÚµÄÀàµÄ run ·½·¨£¬¶Ô´Ë´ó¼Ò²»·ÁÊÔÑéһϡ£

¡¡¡¡Ê¹Óà Runnable ½Ó¿ÚÀ´ÊµÏÖ¶àÏß³ÌʹµÃÎÒÃÇÄܹ»ÔÚÒ»¸öÀàÖаüÈÝËùÓеĴúÂ룬ÓÐÀûÓÚ·â×°£¬ËüµÄȱµãÔÚÓÚ£¬ÎÒÃÇÖ»ÄÜʹÓÃÒ»Ì×´úÂ룬ÈôÏë´´½¨¶à¸öÏ̲߳¢Ê¹¸÷¸öÏß³ÌÖ´Ðв»Í¬µÄ´úÂ룬ÔòÈÔ±ØÐë¶îÍâ´´½¨À࣬Èç¹ûÕâÑùµÄ»°£¬ÔÚ´ó¶àÊýÇé¿öÏÂÒ²Ðí»¹²»ÈçÖ±½ÓÓöà¸öÀà·Ö±ð¼Ì³Ð Thread À´µÃ½ô´Õ¡£

¡¡¡¡×ÛÉÏËùÊö£¬Á½ÖÖ·½·¨¸÷ÓÐǧÇ´ó¼Ò¿ÉÒÔÁé»îÔËÓá£

¡¡¡¡ÏÂÃæÈÃÎÒÃÇÒ»ÆðÀ´Ñо¿Ò»Ï¶àÏß³ÌʹÓÃÖеÄһЩÎÊÌâ¡£
¡¡Èý£ºÏ̵߳ÄËÄÖÖ״̬

¡¡¡¡1. ÐÂ״̬£ºÏß³ÌÒѱ»´´½¨µ«ÉÐδִÐУ¨start() ÉÐδ±»µ÷Óã©¡£

¡¡¡¡2. ¿ÉÖ´ÐÐ״̬£ºÏ߳̿ÉÒÔÖ´ÐУ¬ËäÈ»²»Ò»¶¨ÕýÔÚÖ´ÐС£CPU ʱ¼äËæÊ±¿ÉÄܱ»·ÖÅ䏸¸ÃỊ̈߳¬´Ó¶øÊ¹µÃËüÖ´ÐС£

¡¡¡¡3. ËÀÍö״̬£ºÕý³£Çé¿öÏ run() ·µ»ØÊ¹µÃÏß³ÌËÀÍö¡£µ÷Óà stop()»ò destroy() ÒàÓÐͬÑùЧ¹û£¬µ«ÊDz»±»ÍƼö£¬Ç°Õß»á²úÉúÒì³££¬ºóÕßÊÇÇ¿ÖÆÖÕÖ¹£¬²»»áÊÍ·ÅËø¡£

¡¡¡¡4. ×èÈû״̬£ºÏ̲߳»»á±»·ÖÅä CPU ʱ¼ä£¬ÎÞ·¨Ö´ÐС£

¡¡¡¡ËÄ£ºÏ̵߳ÄÓÅÏȼ¶

????Ï̵߳ÄÓÅÏȼ¶´ú±í¸ÃÏ̵߳ÄÖØÒª³Ì¶È£¬µ±Óжà¸öÏß³Ìͬʱ´¦ÓÚ¿ÉÖ´ÐÐ״̬²¢µÈ´ý»ñµÃ CPU ʱ¼äʱ£¬Ï̵߳÷¶Èϵͳ¸ù¾Ý¸÷¸öÏ̵߳ÄÓÅÏȼ¶À´¾ö¶¨¸øË­·ÖÅä CPU ʱ¼ä£¬ÓÅÏȼ¶¸ßµÄÏß³ÌÓиü´óµÄ»ú»á»ñµÃ CPU ʱ¼ä£¬ÓÅÏȼ¶µÍµÄÏß³ÌÒ²²»ÊÇûÓлú»á£¬Ö»ÊÇ»ú»áҪСһЩ°ÕÁË¡£

????Äã¿ÉÒÔµ÷Óà Thread ÀàµÄ·½·¨ getPriority() ºÍ setPriority()À´´æÈ¡Ï̵߳ÄÓÅÏȼ¶£¬Ï̵߳ÄÓÅÏȼ¶½çÓÚ1(MIN_PRIORITY)ºÍ10(MAX_PRIORITY)Ö®¼ä£¬È±Ê¡ÊÇ5(NORM_PRIORITY)¡£

¡¡¡¡Î壺Ï̵߳Äͬ²½

????ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£

¡¡¡¡ÓÉÓÚÎÒÃÇ¿ÉÒÔͨ¹ý private ¹Ø¼ü×ÖÀ´±£Ö¤Êý¾Ý¶ÔÏóÖ»Äܱ»·½·¨·ÃÎÊ£¬ËùÒÔÎÒÃÇÖ»ÐèÕë¶Ô·½·¨Ìá³öÒ»Ì×»úÖÆ£¬ÕâÌ×»úÖÆ¾ÍÊÇ synchronized ¹Ø¼ü×Ö£¬Ëü°üÀ¨Á½ÖÖÓ÷¨£ºsynchronized ·½·¨ºÍ synchronized ¿é¡£

¡¡¡¡1. synchronized ·½·¨£ºÍ¨¹ýÔÚ·½·¨ÉùÃ÷ÖмÓÈë synchronized¹Ø¼ü×ÖÀ´ÉùÃ÷ synchronized ·½·¨¡£È磺

public synchronized void accessVal(int newVal);

¡¡¡¡synchronized ·½·¨¿ØÖƶÔÀà³ÉÔ±±äÁ¿µÄ·ÃÎÊ£ºÃ¿¸öÀàʵÀý¶ÔÓ¦Ò»°ÑËø£¬Ã¿¸ö synchronized ·½·¨¶¼±ØÐë»ñµÃµ÷Óø÷½·¨µÄÀàʵÀýµÄËø·½ÄÜÖ´ÐУ¬·ñÔòËùÊôÏß³Ì×èÈû£¬·½·¨Ò»µ©Ö´ÐУ¬¾Í¶ÀÕ¼¸ÃËø£¬Ö±µ½´Ó¸Ã·½·¨·µ»ØÊ±²Å½«ËøÊÍ·Å£¬´Ëºó±»×èÈûµÄÏ̷߳½ÄÜ»ñµÃ¸ÃËø£¬ÖØÐ½øÈë¿ÉÖ´ÐÐ״̬¡£ÕâÖÖ»úÖÆÈ·±£ÁËͬһʱ¿Ì¶ÔÓÚÿһ¸öÀàʵÀý£¬ÆäËùÓÐÉùÃ÷Ϊ synchronized µÄ³ÉÔ±º¯ÊýÖÐÖÁ¶àÖ»ÓÐÒ»¸ö´¦ÓÚ¿ÉÖ´ÐÐ״̬£¨ÒòΪÖÁ¶àÖ»ÓÐÒ»¸öÄܹ»»ñµÃ¸ÃÀàʵÀý¶ÔÓ¦µÄËø£©£¬´Ó¶øÓÐЧ±ÜÃâÁËÀà³ÉÔ±±äÁ¿µÄ·ÃÎʳåÍ»£¨Ö»ÒªËùÓпÉÄÜ·ÃÎÊÀà³ÉÔ±±äÁ¿µÄ·½·¨¾ù±»ÉùÃ÷Ϊ synchronized£©¡£

¡¡¡¡ÔÚ Java ÖУ¬²»¹âÊÇÀàʵÀý£¬Ã¿Ò»¸öÀàÒ²¶ÔÓ¦Ò»°ÑËø£¬ÕâÑùÎÒÃÇÒ²¿É½«ÀàµÄ¾²Ì¬³ÉÔ±º¯ÊýÉùÃ÷Ϊ synchronized £¬ÒÔ¿ØÖÆÆä¶ÔÀàµÄ¾²Ì¬³ÉÔ±±äÁ¿µÄ·ÃÎÊ¡£

¡¡¡¡synchronized ·½·¨µÄȱÏÝ£ºÈô½«Ò»¸ö´óµÄ·½·¨ÉùÃ÷Ϊsynchronized ½«»á´ó´óÓ°ÏìЧÂÊ£¬µäÐ͵أ¬Èô½«Ïß³ÌÀàµÄ·½·¨ run() ÉùÃ÷Ϊ synchronized £¬ÓÉÓÚÔÚÏ̵߳ÄÕû¸öÉúÃüÆÚÄÚËüÒ»Ö±ÔÚÔËÐУ¬Òò´Ë½«µ¼ÖÂËü¶Ô±¾ÀàÈκΠsynchronized ·½·¨µÄµ÷Óö¼ÓÀÔ¶²»»á³É¹¦¡£µ±È»ÎÒÃÇ¿ÉÒÔͨ¹ý½«·ÃÎÊÀà³ÉÔ±±äÁ¿µÄ´úÂë·Åµ½×¨Ãŵķ½·¨ÖУ¬½«ÆäÉùÃ÷Ϊ synchronized £¬²¢ÔÚÖ÷·½·¨Öе÷ÓÃÀ´½â¾öÕâÒ»ÎÊÌ⣬µ«ÊÇ Java ΪÎÒÃÇÌṩÁ˸üºÃµÄ½â¾ö°ì·¨£¬ÄǾÍÊÇ synchronized ¿é¡£

¡¡¡¡2. synchronized ¿é£ºÍ¨¹ý synchronized¹Ø¼ü×ÖÀ´ÉùÃ÷synchronized ¿é¡£Óï·¨ÈçÏ£º

synchronized(syncObject) {
//ÔÊÐí·ÃÎÊ¿ØÖƵĴúÂë
}

????synchronized ¿éÊÇÕâÑùÒ»¸ö´úÂë¿é£¬ÆäÖеĴúÂë±ØÐë»ñµÃ¶ÔÏó syncObject £¨ÈçǰËùÊö£¬¿ÉÒÔÊÇÀàʵÀý»òÀࣩµÄËø·½ÄÜÖ´ÐУ¬¾ßÌå»úÖÆÍ¬Ç°ËùÊö¡£ÓÉÓÚ¿ÉÒÔÕë¶ÔÈÎÒâ´úÂë¿é£¬ÇÒ¿ÉÈÎÒâÖ¸¶¨ÉÏËøµÄ¶ÔÏ󣬹ÊÁé»îÐԽϸߡ£
Áù£ºÏ̵߳Ä×èÈû

????ΪÁ˽â¾ö¶Ô¹²Ïí´æ´¢ÇøµÄ·ÃÎʳåÍ»£¬Java ÒýÈëÁËͬ²½»úÖÆ£¬ÏÖÔÚÈÃÎÒÃÇÀ´¿¼²ì¶à¸öÏ̶߳Թ²Ïí×ÊÔ´µÄ·ÃÎÊ£¬ÏÔȻͬ²½»úÖÆÒѾ­²»¹»ÁË£¬ÒòΪÔÚÈÎÒâʱ¿ÌËùÒªÇóµÄ×ÊÔ´²»Ò»¶¨ÒѾ­×¼±¸ºÃÁ˱»·ÃÎÊ£¬·´¹ýÀ´£¬Í¬Ò»Ê±¿Ì×¼±¸ºÃÁ˵Ä×ÊÔ´Ò²¿ÉÄܲ»Ö¹Ò»¸ö¡£ÎªÁ˽â¾öÕâÖÖÇé¿öϵķÃÎÊ¿ØÖÆÎÊÌ⣬Java ÒýÈëÁ˶Ô×èÈû»úÖÆµÄÖ§³Ö¡£

????×èÈûÖ¸µÄÊÇÔÝÍ£Ò»¸öÏ̵߳ÄÖ´ÐÐÒԵȴýij¸öÌõ¼þ·¢Éú£¨Èçij×ÊÔ´¾ÍÐ÷£©£¬Ñ§¹ý²Ù×÷ϵͳµÄͬѧ¶ÔËüÒ»¶¨ÒѾ­ºÜÊìϤÁË¡£Java ÌṩÁË´óÁ¿·½·¨À´Ö§³Ö×èÈû£¬ÏÂÃæÈÃÎÒÃÇÖðÒ»·ÖÎö¡£

¡¡¡¡1. sleep() ·½·¨£ºsleep() ÔÊÐí Ö¸¶¨ÒÔºÁÃëΪµ¥Î»µÄÒ»¶Îʱ¼ä×÷Ϊ²ÎÊý£¬ËüʹµÃÏß³ÌÔÚÖ¸¶¨µÄʱ¼äÄÚ½øÈë×èÈû״̬£¬²»Äܵõ½CPU ʱ¼ä£¬Ö¸¶¨µÄʱ¼äÒ»¹ý£¬Ïß³ÌÖØÐ½øÈë¿ÉÖ´ÐÐ״̬¡£

¡¡¡¡µäÐ͵أ¬sleep() ±»ÓÃÔڵȴýij¸ö×ÊÔ´¾ÍÐ÷µÄÇéÐΣº²âÊÔ·¢ÏÖÌõ¼þ²»Âú×ãºó£¬ÈÃÏß³Ì×èÈûÒ»¶Îʱ¼äºóÖØÐ²âÊÔ£¬Ö±µ½Ìõ¼þÂú×ãΪֹ¡£

¡¡¡¡2. suspend() ºÍ resume() ·½·¨£ºÁ½¸ö·½·¨ÅäÌ×ʹÓã¬suspend()ʹµÃÏ߳̽øÈë×èÈû״̬£¬²¢ÇÒ²»»á×Ô¶¯»Ö¸´£¬±ØÐëÆä¶ÔÓ¦µÄresume() ±»µ÷Ó㬲ÅÄÜʹµÃÏß³ÌÖØÐ½øÈë¿ÉÖ´ÐÐ״̬¡£µäÐ͵أ¬suspend() ºÍ resume() ±»ÓÃÔڵȴýÁíÒ»¸öÏ̲߳úÉúµÄ½á¹ûµÄÇéÐΣº²âÊÔ·¢ÏÖ½á¹û»¹Ã»ÓвúÉúºó£¬ÈÃÏß³Ì×èÈû£¬ÁíÒ»¸öÏ̲߳úÉúÁ˽á¹ûºó£¬µ÷Óà resume() ʹÆä»Ö¸´¡£

¡¡¡¡3. yield() ·½·¨£ºyield() ʹµÃÏß³Ì·ÅÆúµ±Ç°·ÖµÃµÄ CPU ʱ¼ä£¬µ«ÊDz»Ê¹Ïß³Ì×èÈû£¬¼´Ïß³ÌÈÔ´¦ÓÚ¿ÉÖ´ÐÐ״̬£¬ËæÊ±¿ÉÄÜÔٴηֵà CPU ʱ¼ä¡£µ÷Óà yield() µÄЧ¹ûµÈ¼ÛÓÚµ÷¶È³ÌÐòÈÏΪ¸ÃÏß³ÌÒÑÖ´ÐÐÁË×ã¹»µÄʱ¼ä´Ó¶ø×ªµ½ÁíÒ»¸öÏ̡߳£

¡¡¡¡4. wait() ºÍ notify() ·½·¨£ºÁ½¸ö·½·¨ÅäÌ×ʹÓã¬wait() ʹµÃÏ߳̽øÈë×èÈû״̬£¬ËüÓÐÁ½ÖÖÐÎʽ£¬Ò»ÖÖÔÊÐí Ö¸¶¨ÒÔºÁÃëΪµ¥Î»µÄÒ»¶Îʱ¼ä×÷Ϊ²ÎÊý£¬ÁíÒ»ÖÖûÓвÎÊý£¬Ç°Õßµ±¶ÔÓ¦µÄ notify() ±»µ÷ÓûòÕß³¬³öÖ¸¶¨Ê±¼äʱÏß³ÌÖØÐ½øÈë¿ÉÖ´ÐÐ״̬£¬ºóÕßÔò±ØÐë¶ÔÓ¦µÄ notify() ±»µ÷Óá£

????³õ¿´ÆðÀ´ËüÃÇÓë suspend() ºÍ resume() ·½·¨¶ÔûÓÐʲô·Ö±ð£¬µ«ÊÇÊÂʵÉÏËüÃÇÊǽØÈ»²»Í¬µÄ¡£Çø±ðµÄºËÐÄÔÚÓÚ£¬Ç°ÃæÐðÊöµÄËùÓз½·¨£¬×èÈûʱ¶¼²»»áÊÍ·ÅÕ¼ÓõÄËø£¨Èç¹ûÕ¼ÓÃÁ˵ϰ£©£¬¶øÕâÒ»¶Ô·½·¨ÔòÏà·´¡£

¡¡¡¡ÉÏÊöµÄºËÐÄÇø±ðµ¼ÖÂÁËһϵÁеÄϸ½ÚÉϵÄÇø±ð¡£

????Ê×ÏÈ£¬Ç°ÃæÐðÊöµÄËùÓз½·¨¶¼Á¥ÊôÓÚ Thread À࣬µ«ÊÇÕâÒ»¶ÔÈ´Ö±½ÓÁ¥ÊôÓÚ Object À࣬Ҳ¾ÍÊÇ˵£¬ËùÓжÔÏó¶¼ÓµÓÐÕâÒ»¶Ô·½·¨¡£³õ¿´ÆðÀ´ÕâÊ®·Ö²»¿É˼Ò飬µ«ÊÇʵ¼ÊÉÏÈ´ÊǺÜ×ÔÈ»µÄ£¬ÒòΪÕâÒ»¶Ô·½·¨×èÈûʱҪÊÍ·ÅÕ¼ÓõÄËø£¬¶øËøÊÇÈκζÔÏó¶¼¾ßÓе쬵÷ÓÃÈÎÒâ¶ÔÏóµÄ wait() ·½·¨µ¼ÖÂÏß³Ì×èÈû£¬²¢ÇҸöÔÏóÉϵÄËø±»ÊÍ·Å¡£¶øµ÷Óà ÈÎÒâ¶ÔÏóµÄnotify()·½·¨Ôòµ¼ÖÂÒòµ÷ÓøöÔÏóµÄ wait() ·½·¨¶ø×èÈûµÄÏß³ÌÖÐËæ»úÑ¡ÔñµÄÒ»¸ö½â³ý×èÈû£¨µ«ÒªµÈµ½»ñµÃËøºó²ÅÕæÕý¿ÉÖ´ÐУ©¡£

????Æä´Î£¬Ç°ÃæÐðÊöµÄËùÓз½·¨¶¼¿ÉÔÚÈκÎλÖõ÷Ó㬵«ÊÇÕâÒ»¶Ô·½·¨È´±ØÐëÔÚ synchronized ·½·¨»ò¿éÖе÷Óã¬ÀíÓÉÒ²ºÜ¼òµ¥£¬Ö»ÓÐÔÚsynchronized ·½·¨»ò¿éÖе±Ç°Ï̲߳ÅÕ¼ÓÐËø£¬²ÅÓÐËø¿ÉÒÔÊÍ·Å¡£Í¬ÑùµÄµÀÀí£¬µ÷ÓÃÕâÒ»¶Ô·½·¨µÄ¶ÔÏóÉϵÄËø±ØÐëΪµ±Ç°Ïß³ÌËùÓµÓУ¬ÕâÑù²ÅÓÐËø¿ÉÒÔÊÍ·Å¡£Òò´Ë£¬ÕâÒ»¶Ô·½·¨µ÷ÓñØÐë·ÅÖÃÔÚÕâÑùµÄ synchronized ·½·¨»ò¿éÖУ¬¸Ã·½·¨»ò¿éµÄÉÏËø¶ÔÏó¾ÍÊǵ÷ÓÃÕâÒ»¶Ô·½·¨µÄ¶ÔÏó¡£Èô²»Âú×ãÕâÒ»Ìõ¼þ£¬Ôò³ÌÐòËäÈ»ÈÔÄܱàÒ룬µ«ÔÚÔËÐÐʱ»á³öÏÖIllegalMonitorStateException Òì³£¡£

????wait() ºÍ notify() ·½·¨µÄÉÏÊöÌØÐÔ¾ö¶¨ÁËËüÃǾ­³£ºÍsynchronized ·½·¨»ò¿éÒ»ÆðʹÓ㬽«ËüÃǺͲÙ×÷ϵͳµÄ½ø³Ì¼äͨÐÅ»úÖÆ×÷Ò»¸ö±È½Ï¾Í»á·¢ÏÖËüÃǵÄÏàËÆÐÔ£ºsynchronized·½·¨»ò¿éÌṩÁËÀàËÆÓÚ²Ù×÷ϵͳԭÓïµÄ¹¦ÄÜ£¬ËüÃǵÄÖ´Ðв»»áÊܵ½¶àÏ̻߳úÖÆµÄ¸ÉÈÅ£¬¶øÕâÒ»¶Ô·½·¨ÔòÏ൱ÓÚ block ºÍwakeup Ô­ÓÕâÒ»¶Ô·½·¨¾ùÉùÃ÷Ϊ synchronized£©¡£ËüÃǵĽáºÏʹµÃÎÒÃÇ¿ÉÒÔʵÏÖ²Ù×÷ϵͳÉÏһϵÁо«ÃîµÄ½ø³Ì¼äͨÐŵÄËã·¨£¨ÈçÐźÅÁ¿Ëã·¨£©£¬²¢ÓÃÓÚ½â¾ö¸÷ÖÖ¸´ÔÓµÄÏ̼߳äͨÐÅÎÊÌâ¡£

¡¡¡¡¹ØÓÚ wait() ºÍ notify() ·½·¨×îºóÔÙ˵Ã÷Á½µã£º

????µÚÒ»£ºµ÷Óà notify() ·½·¨µ¼Ö½â³ý×èÈûµÄÏß³ÌÊÇ´ÓÒòµ÷ÓøöÔÏóµÄ wait() ·½·¨¶ø×èÈûµÄÏß³ÌÖÐËæ»úѡȡµÄ£¬ÎÒÃÇÎÞ·¨Ô¤ÁÏÄÄÒ»¸öÏ߳̽«»á±»Ñ¡Ôñ£¬ËùÒÔ±à³ÌÊ±ÒªÌØ±ðСÐÄ£¬±ÜÃâÒòÕâÖÖ²»È·¶¨ÐÔ¶ø²úÉúÎÊÌâ¡£

????µÚ¶þ£º³ýÁË notify()£¬»¹ÓÐÒ»¸ö·½·¨ notifyAll() Ò²¿ÉÆðµ½ÀàËÆ×÷Óã¬Î¨Ò»µÄÇø±ðÔÚÓÚ£¬µ÷Óà notifyAll() ·½·¨½«°ÑÒòµ÷ÓøöÔÏóµÄ wait() ·½·¨¶ø×èÈûµÄËùÓÐÏß³ÌÒ»´ÎÐÔÈ«²¿½â³ý×èÈû¡£µ±È»£¬Ö»ÓлñµÃËøµÄÄÇÒ»¸öÏ̲߳ÅÄܽøÈë¿ÉÖ´ÐÐ״̬¡£

????̸µ½×èÈû£¬¾Í²»Äܲ»Ì¸Ò»Ì¸ËÀËø£¬ÂÔÒ»·ÖÎö¾ÍÄÜ·¢ÏÖ£¬suspend() ·½·¨ºÍ²»Ö¸¶¨³¬Ê±ÆÚÏÞµÄ wait() ·½·¨µÄµ÷Óö¼¿ÉÄܲúÉúËÀËø¡£Òź¶µÄÊÇ£¬Java ²¢²»ÔÚÓïÑÔ¼¶±ðÉÏÖ§³ÖËÀËøµÄ±ÜÃ⣬ÎÒÃÇÔÚ±à³ÌÖбØÐëСÐĵرÜÃâËÀËø¡£

????ÒÔÉÏÎÒÃÇ¶Ô Java ÖÐʵÏÖÏß³Ì×èÈûµÄ¸÷ÖÖ·½·¨×÷ÁËÒ»·¬·ÖÎö£¬ÎÒÃÇÖØµã·ÖÎöÁË wait() ºÍ notify() ·½·¨£¬ÒòΪËüÃǵŦÄÜ×îÇ¿´ó£¬Ê¹ÓÃÒ²×îÁé»î£¬µ«ÊÇÕâÒ²µ¼ÖÂÁËËüÃǵÄЧÂʽϵͣ¬½ÏÈÝÒ׳ö´í¡£Êµ¼ÊʹÓÃÖÐÎÒÃÇÓ¦¸ÃÁé»îʹÓø÷ÖÖ·½·¨£¬ÒÔ±ã¸üºÃµØ´ïµ½ÎÒÃǵÄÄ¿µÄ¡£

¡¡¡¡Æß£ºÊØ»¤Ïß³Ì

????ÊØ»¤Ïß³ÌÊÇÒ»ÀàÌØÊâµÄỊ̈߳¬ËüºÍÆÕͨÏ̵߳ÄÇø±ðÔÚÓÚËü²¢²»ÊÇÓ¦ÓóÌÐòµÄºËÐIJ¿·Ö£¬µ±Ò»¸öÓ¦ÓóÌÐòµÄËùÓзÇÊØ»¤Ïß³ÌÖÕÖ¹ÔËÐÐʱ£¬¼´Ê¹ÈÔÈ»ÓÐÊØ»¤Ïß³ÌÔÚÔËÐУ¬Ó¦ÓóÌÐòÒ²½«ÖÕÖ¹£¬·´Ö®£¬Ö»ÒªÓÐÒ»¸ö·ÇÊØ»¤Ïß³ÌÔÚÔËÐУ¬Ó¦ÓóÌÐò¾Í²»»áÖÕÖ¹¡£ÊØ»¤Ïß³ÌÒ»°ã±»ÓÃÓÚÔÚºǫ́ΪÆäËüÏß³ÌÌṩ·þÎñ¡£

¡¡¡¡¿ÉÒÔͨ¹ýµ÷Ó÷½·¨ isDaemon() À´ÅжÏÒ»¸öÏß³ÌÊÇ·ñÊÇÊØ»¤Ị̈߳¬Ò²¿ÉÒÔµ÷Ó÷½·¨ setDaemon() À´½«Ò»¸öÏß³ÌÉèÎªÊØ»¤Ï̡߳£

¡¡¡¡°Ë£ºÏß³Ì×é

????Ïß³Ì×éÊÇÒ»¸ö Java ÌØÓеĸÅÄÔÚ Java ÖУ¬Ïß³Ì×éÊÇÀàThreadGroup µÄ¶ÔÏó£¬Ã¿¸öÏ̶߳¼Á¥ÊôÓÚΨһһ¸öÏß³Ì×飬Õâ¸öÏß³Ì×éÔÚÏ̴߳´½¨Ê±Ö¸¶¨²¢ÔÚÏ̵߳ÄÕû¸öÉúÃüÆÚÄÚ¶¼²»Äܸü¸Ä¡£Äã¿ÉÒÔͨ¹ýµ÷Óðüº¬ ThreadGroup ÀàÐͲÎÊýµÄ Thread À๹Ô캯ÊýÀ´Ö¸¶¨Ïß³ÌÊôµÄÏß³Ì×飬ÈôûÓÐÖ¸¶¨£¬ÔòÏß³ÌȱʡµØÁ¥ÊôÓÚÃûΪ system µÄϵͳÏß³Ì×é¡£

????ÔÚ Java ÖУ¬³ýÁËÔ¤½¨µÄϵͳÏß³Ì×éÍ⣬ËùÓÐÏß³Ì×é¶¼±ØÐëÏÔʽ´´½¨¡£ÔÚ Java ÖУ¬³ýϵͳÏß³Ì×éÍâµÄÿ¸öÏß³Ì×éÓÖÁ¥ÊôÓÚÁíÒ»¸öÏß³Ì×飬Äã¿ÉÒÔÔÚ´´½¨Ïß³Ì×éʱָ¶¨ÆäËùÁ¥ÊôµÄÏß³Ì×飬ÈôûÓÐÖ¸¶¨£¬ÔòȱʡµØÁ¥ÊôÓÚϵͳÏß³Ì×é¡£ÕâÑù£¬ËùÓÐÏß³Ì×é×é³ÉÁËÒ»¿ÃÒÔϵͳÏß³Ì×éΪ¸ùµÄÊ÷¡£

????Java ÔÊÐíÎÒÃǶÔÒ»¸öÏß³Ì×éÖеÄËùÓÐÏß³Ìͬʱ½øÐвÙ×÷£¬±ÈÈçÎÒÃÇ¿ÉÒÔͨ¹ýµ÷ÓÃÏß³Ì×éµÄÏàÓ¦·½·¨À´ÉèÖÃÆäÖÐËùÓÐÏ̵߳ÄÓÅÏȼ¶£¬Ò²¿ÉÒÔÆô¶¯»ò×èÈûÆäÖеÄËùÓÐÏ̡߳£

¡¡¡¡Java µÄÏß³Ì×é»úÖÆµÄÁíÒ»¸öÖØÒª×÷ÓÃÊÇḬ̈߳²È«¡£Ïß³Ì×é»úÖÆÔÊÐíÎÒÃÇͨ¹ý·Ö×éÀ´Çø·ÖÓв»Í¬°²È«ÌØÐÔµÄỊ̈߳¬¶Ô²»Í¬×éµÄÏ߳̽øÐв»Í¬µÄ´¦Àí£¬»¹¿ÉÒÔͨ¹ýÏß³Ì×éµÄ·Ö²ã½á¹¹À´Ö§³Ö²»¶ÔµÈ°²È«´ëÊ©µÄ²ÉÓá£Java µÄ ThreadGroup ÀàÌṩÁË´óÁ¿µÄ·½·¨À´·½±ãÎÒÃǶÔÏß³Ì×éÊ÷ÖеÄÿһ¸öÏß³Ì×éÒÔ¼°Ïß³Ì×éÖеÄÿһ¸öÏ߳̽øÐвÙ×÷¡£

¡¡¡¡¾Å£º×ܽá

????ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ²ÊöÁË Java ¶àÏ̱߳à³ÌµÄ·½·½ÃæÃ棬°üÀ¨´´½¨Ị̈߳¬ÒÔ¼°¶Ô¶à¸öÏ߳̽øÐе÷¶È¡¢¹ÜÀí¡£ÎÒÃÇÉî¿ÌÈÏʶµ½Á˶àÏ̱߳à³ÌµÄ¸´ÔÓÐÔ£¬ÒÔ¼°Ïß³ÌÇл»¿ªÏú´øÀ´µÄ¶àÏ̳߳ÌÐòµÄµÍЧÐÔ£¬ÕâÒ²´ÙʹÎÒÃÇÈÏÕæµØË¼¿¼Ò»¸öÎÊÌ⣺ÎÒÃÇÊÇ·ñÐèÒª¶àỊ̈߳¿ºÎʱÐèÒª¶àỊ̈߳¿

????¶àÏ̵߳ĺËÐÄÔÚÓÚ¶à¸ö´úÂë¿é²¢·¢Ö´ÐУ¬±¾ÖÊÌØµãÔÚÓÚ¸÷´úÂë¿éÖ®¼äµÄ´úÂëÊÇÂÒÐòÖ´Ðеġ£ÎÒÃǵijÌÐòÊÇ·ñÐèÒª¶àỊ̈߳¬¾ÍÊÇÒª¿´ÕâÊÇ·ñÒ²ÊÇËüµÄÄÚÔÚÌØµã¡£

????¼ÙÈçÎÒÃǵijÌÐò¸ù±¾²»ÒªÇó¶à¸ö´úÂë¿é²¢·¢Ö´ÐУ¬ÄÇ×ÔÈ»²»ÐèҪʹÓöàỊ̈߳»¼ÙÈçÎÒÃǵijÌÐòËäȻҪÇó¶à¸ö´úÂë¿é²¢·¢Ö´ÐУ¬µ«ÊÇÈ´²»ÒªÇóÂÒÐò£¬ÔòÎÒÃÇÍêÈ«¿ÉÒÔÓÃÒ»¸öÑ­»·À´¼òµ¥¸ßЧµØÊµÏÖ£¬Ò²²»ÐèҪʹÓöàỊ̈߳»Ö»Óе±ËüÍêÈ«·ûºÏ¶àÏ̵߳ÄÌØµãʱ£¬¶àÏ̻߳úÖÆ¶ÔÏ̼߳äÍ