??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲午夜福利精品无码,亚洲AV无码一区二区三区国产,亚洲一区中文字幕在线观看http://www.tkk7.com/chenglu/archive/2010/06/26/SortTest.htmlJava宅男Java宅男Sat, 26 Jun 2010 01:02:00 GMThttp://www.tkk7.com/chenglu/archive/2010/06/26/SortTest.htmlhttp://www.tkk7.com/chenglu/comments/324541.htmlhttp://www.tkk7.com/chenglu/archive/2010/06/26/SortTest.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/324541.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/324541.html 1 import java.io.*;
 2 import java.util.Scanner;
 3 public class SortTest {
 4     public static void main(String[] args) throws IOException {
 5         int temp = 0;//临时变量Q用于冒泡交?nbsp;       
 6         int[] num=new int[10];  //声明一个空的数l?nbsp; 10个长?/span>
 7         Scanner sc = new Scanner(System.in);
 8         FileOutputStream out=new FileOutputStream("1.txt");
 9         PrintStream p=new PrintStream(out);
10         //开始@环赋?/span>
11         for(int i =0;i<num.length;i++){
12             num[i]=sc.nextInt();
13         }
14         p.append("排序前ؓ:");
15         for (int i = 0; i <num.length; i++) {
16             System.out.println(num[i]);
17             p.append(num[i]+" , ");
18         }
19         // 用于排序
20         for (int i = 0; i < num.length-1; i++) {
21             for (int j = 0; j < num.length - i - 1; j++) {
22                 if (num[j] > num[j + 1]) {
23                     temp = num[j];
24                     num[j] = num[j + 1];
25                     num[j + 1= temp;
26                 }
27             }
28         }
29         //输出文g
30         p.append("\n");
31         p.append("排序后ؓ:");
32         // 循环输出
33         System.out.println("排序后ؓ:");
34         for (int i = 0; i <num.length; i++) {
35             System.out.println(num[i]);
36             p.append(num[i]+" , ");
37         }
38     
39         
40     }
41 } 最后应该把plclose了哈

Java宅男 2010-06-26 09:02 发表评论
]]>
MyEclipse6.0注册机源代码http://www.tkk7.com/chenglu/archive/2010/06/19/MyEclipse6_cracker.htmlJava宅男Java宅男Sat, 19 Jun 2010 14:09:00 GMThttp://www.tkk7.com/chenglu/archive/2010/06/19/MyEclipse6_cracker.htmlhttp://www.tkk7.com/chenglu/comments/323884.htmlhttp://www.tkk7.com/chenglu/archive/2010/06/19/MyEclipse6_cracker.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/323884.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/323884.html 

package myeclipsegen;

import java.io.*;

public class MyEclipseGen {
    
private static final String LL = "Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.";
    
public String getSerial(String userId, String licenseNum) {
        java.util.Calendar cal 
= java.util.Calendar.getInstance();
        cal.add(
13);
        cal.add(
6-1);
        java.text.NumberFormat nf 
= new java.text.DecimalFormat("000");
        licenseNum 
= nf.format(Integer.valueOf(licenseNum));
        String verTime 
= new StringBuilder("-").append(new java.text.
                SimpleDateFormat(
"yyMMdd").format(cal.getTime())).append("0").
                         toString();
        String type 
= "YE3MP-";
        String need 
= new StringBuilder(userId.substring(01)).append(type).
                      append(
"300").append(licenseNum).append(verTime).toString();
        String dx 
= new StringBuilder(need).append(LL).append(userId).toString();
        
int suf = this.decode(dx);
        String code 
= new StringBuilder(need).append(String.valueOf(suf)).
                      toString();
        
return this.change(code);
    }

    
private int decode(String s) {
        
int i;
        
char[] ac;
        
int j;
        
int k;
        i 
= 0;
        ac 
= s.toCharArray();
        j 
= 0;
        k 
= ac.length;
        
while (j < k) {
            i 
= (31 * i) + ac[j];
            j
++;
        }
        
return Math.abs(i);
    }

    
private String change(String s) {
        
byte[] abyte0;
        
char[] ac;
        
int i;
        
int k;
        
int j;
        abyte0 
= s.getBytes();
        ac 
= new char[s.length()];
        i 
= 0;
        k 
= abyte0.length;
        
while (i < k) {
            j 
= abyte0[i];
            
if ((j >= 48&& (j <= 57)) {
                j 
= (((j - 48+ 5% 10+ 48;
            } 
else if ((j >= 65&& (j <= 90)) {
                j 
= (((j - 65+ 13% 26+ 65;
            } 
else if ((j >= 97&& (j <= 122)) {
                j 
= (((j - 97+ 13% 26+ 97;
            }
            ac[i] 
= (char) j;
            i
++;
        }
        
return String.valueOf(ac);
    }

    
public MyEclipseGen() {
        
super();
    }

    
public static void main(String[] args) {
        
try {
            System.out.println(
"please input register name:");
            BufferedReader reader 
= new BufferedReader(new InputStreamReader(
                    System.in));
            String userId 
= null;
            userId 
= reader.readLine();
            MyEclipseGen myeclipsegen 
= new MyEclipseGen();
            String res 
= myeclipsegen.getSerial(userId, "20");
            System.out.println(
"Serial:" + res);
            reader.readLine();
        } 
catch (IOException ex) {
        }
    }
}
Ҏ下蝲源文件和~译好的class文g?br /> /Files/chenglu/MyEclipse61Gen.zip
额,q有QMyEclipse6的下载地址是:请用迅雷下载。?a >http://downloads.myeclipseide.com/downloads/products/eworkbench/6.0.1GA/MyEclipse_6.0.1GA_E3.3.1_FullStackInstaller.exe

Java宅男 2010-06-19 22:09 发表评论
]]>
option selectD取小?/title><link>http://www.tkk7.com/chenglu/archive/2010/06/17/option_jsp.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Wed, 16 Jun 2010 23:12:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2010/06/17/option_jsp.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/323677.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2010/06/17/option_jsp.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/323677.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/323677.html</trackback:ping><description><![CDATA[先来看html代码<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff"><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span><span style="color: #000000"><br />   </span><span style="color: #0000ff"><</span><span style="color: #800000">label</span><span style="color: #0000ff">></span><span style="color: #000000">选择分类</span><span style="color: #0000ff"></</span><span style="color: #800000">label</span><span style="color: #0000ff">></span><span style="color: #000000"><br />     </span><span style="color: #0000ff"><</span><span style="color: #800000">select </span><span style="color: #ff0000">name</span><span style="color: #0000ff">="classId"</span><span style="color: #0000ff">></span><span style="color: #000000"><br />       </span><span style="color: #0000ff"><</span><span style="color: #800000">option </span><span style="color: #ff0000">value</span><span style="color: #0000ff">="1"</span><span style="color: #0000ff">></span><span style="color: #000000">企业动?/span><span style="color: #0000ff"></</span><span style="color: #800000">option</span><span style="color: #0000ff">></span><span style="color: #000000"><br />       </span><span style="color: #0000ff"><</span><span style="color: #800000">option </span><span style="color: #ff0000">value</span><span style="color: #0000ff">="2"</span><span style="color: #0000ff">></span><span style="color: #000000">最新活?/span><span style="color: #0000ff"></</span><span style="color: #800000">option</span><span style="color: #0000ff">></span><span style="color: #000000"><br />     </span><span style="color: #0000ff"></</span><span style="color: #800000">select</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></span></div> 在纯struts2中获取用户选择值直?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">private</span><span style="color: #000000"> String classId;<br />  </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> setTitle(String title) {<br />   </span><span style="color: #0000ff">this</span><span style="color: #000000">.title </span><span style="color: #000000">=</span><span style="color: #000000"> title;<br />  }<br />  </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getClassId() {<br />   </span><span style="color: #0000ff">return</span><span style="color: #000000"> classId;<br />  }</span></div> 可以,需要注意的是select一定要带nameQoption取到的是value<img src ="http://www.tkk7.com/chenglu/aggbug/323677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2010-06-17 07:12 <a href="http://www.tkk7.com/chenglu/archive/2010/06/17/option_jsp.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java md5 计http://www.tkk7.com/chenglu/archive/2010/06/16/java_md5.htmlJava宅男Java宅男Wed, 16 Jun 2010 01:09:00 GMThttp://www.tkk7.com/chenglu/archive/2010/06/16/java_md5.htmlhttp://www.tkk7.com/chenglu/comments/323647.htmlhttp://www.tkk7.com/chenglu/archive/2010/06/16/java_md5.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/323647.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/323647.html 

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;

    
public String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
        
//定计算Ҏ
        MessageDigest md5=MessageDigest.getInstance("MD5");
        BASE64Encoder base64en 
= new BASE64Encoder();
        
//加密后的字符?/span>
        String newstr=base64en.encode(md5.digest(str.getBytes("utf-8")));
        
return newstr;
    }
 u错了Q这不是md5的算法,是md5+base64加密Q,

Java宅男 2010-06-16 09:09 发表评论
]]>
Spring的applicationContext.xml文ghttp://www.tkk7.com/chenglu/archive/2010/01/02/Spring_applicationContext.htmlJava宅男Java宅男Sat, 02 Jan 2010 15:42:00 GMThttp://www.tkk7.com/chenglu/archive/2010/01/02/Spring_applicationContext.htmlhttp://www.tkk7.com/chenglu/comments/308055.htmlhttp://www.tkk7.com/chenglu/archive/2010/01/02/Spring_applicationContext.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/308055.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/308055.html

Spring的applicationContext.xml文g

惛_用过Spring的程序员们都有这L感觉QSpring把逻辑层封装的太完了Q个人感觉View层封装的不是很好Q。以至于有的初学? 都不知道Spring配置文g的意思,拿来用了。所以今天我l大家详l解释一下Spring的applicationContext.xml文g? OkQ我q是通过代码加注释的方式为大家演C: 以下是详解Spring的applicationContext.xml文g代码Q?br /> <!-- 头文Ӟ主要注意一下编? -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 建立数据?-->
 <bean >
<!-- 数据库驱动,我这里用的是Mysql数据? -->
  <property >
   <value>com.mysql.jdbc.Driver</value>
  </property>
<!-- 数据库地址Q这里也要注意一下编码,不然q可是很郁L哦! -->
  <property >
   <value>
       jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8
   </value>
  </property>
<!-- 数据库的用户? -->
  <property >
   <value>root</value>
  </property>
<!-- 数据库的密码 -->
  <property >
   <value>123</value>
  </property>
 </bean>
<!-- 把数据源注入lSession工厂 -->
 <bean
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property >
   <ref bean="dataSource" />
  </property>
<!-- 配置映射文g -->
  <property >
   <list>
    <value>com/alonely/vo/User.hbm.xml</value>
   </list>
  </property>
 </bean>
<!-- 把Session工厂注入lhibernateTemplate -->
 <!-- 解释一下hibernateTemplateQhibernateTemplate提供了很多方便的ҎQ在执行时自动徏?HibernateCallback 对象Q例如:load()、get()、save、delete(){方法?-->
 <bean
  class="org.springframework.orm.hibernate3.HibernateTemplate">
  <constructor-arg>
   <ref local="sessionFactory" />
  </constructor-arg>
 </bean>
<!-- 把DAO注入lSession工厂 -->
 <bean >
  <property >
   <ref bean="sessionFactory" />
  </property>
 </bean>
<!-- 把Service注入lDAO -->
 <bean >
  <property >
   <ref local="userDAO" />
  </property>
 </bean>
<!-- 把Action注入lService -->
 <bean >
  <property >
   <ref bean="userService" />
  </property>
 </bean>
</beans>
以上Spring的applicationContext.xml文g我是用的SSH架构Q如果您用Spring的MVC架构Q其原理也是一L?


Java宅男 2010-01-02 23:42 发表评论
]]>
hibernate中identity和increment区别http://www.tkk7.com/chenglu/archive/2009/11/13/hibernate_identity_increment.htmlJava宅男Java宅男Fri, 13 Nov 2009 09:31:00 GMThttp://www.tkk7.com/chenglu/archive/2009/11/13/hibernate_identity_increment.htmlhttp://www.tkk7.com/chenglu/comments/302266.htmlhttp://www.tkk7.com/chenglu/archive/2009/11/13/hibernate_identity_increment.html#Feedback1http://www.tkk7.com/chenglu/comments/commentRss/302266.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/302266.htmlidentity:由底层数据库生成标识W。identity是由数据库自q成的Q但q个主键必须讄增长Q前提条件是低层数据库支持自动增长字D늱?
increment:由hibernate理主键Q自动以递增的方式生成标识符Q每ơ增量ؓ1。其在每ơ插入前取得一个当前最大的id+Q作Z键,该主键必MؓIntegercd



Java宅男 2009-11-13 17:31 发表评论
]]>
求证下,E序员是q样阅读历的Q是q样吗?http://www.tkk7.com/chenglu/archive/2009/11/13/jianli.htmlJava宅男Java宅男Fri, 13 Nov 2009 07:58:00 GMThttp://www.tkk7.com/chenglu/archive/2009/11/13/jianli.htmlhttp://www.tkk7.com/chenglu/comments/302238.htmlhttp://www.tkk7.com/chenglu/archive/2009/11/13/jianli.html#Feedback5http://www.tkk7.com/chenglu/comments/commentRss/302238.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/302238.html
  • Q?15分)曄因ؓ好玩而写q操作系l或~译器?
  • Q?12分)历被Latex~译q?
  • Q?11分)为开源Y件A献过代码?
  • Q?9分)上学的时候曾l写q操作系l或~译器?
  • Q?8分)有一个BLOG分n技术知识?
  • Q?8分)~程/机器?工程׃部主席?
  • Q?7分)~程/机器?工程竞赛参与者?
  • Q?7分)在Google和Microsoft实习q?
  • Q?6分)使用动态语aQPython/Perl/RubyQ写q非试验性的E序?
  • Q?5分)知道3U或多于3U的~程语言?
  • Q?5分)之前的工作和目前的职位有很相似的l验?
  • Q?4分)有过实习l验?
  • Q?4分)自己创过业开q公司?
  • Q?4分)有一个通过Rail, PHP或ASP.NET的个Zc?
  • Q?3分)有一个自己域名的邮g地址?
  • Q?3分)改过一些由动态语aQPython/Perl/RubyQ写的程序?
  • Q?2分)有一个个Zc?
  • Q?1分)高学历,学习成W优秀Q等?
  • Q?0分)有奖学金?
  • Q?0分)在快店工作q?
  • Q?0.5分)Fackbook上有一张看上去喝醉了的照片?
  • Q?1分)有博士头衔?
  • Q?2分)有一个一般的求职信?
  • Q?2分)在简历中说自己懂Word/Excel?
  • Q?2分)在简历中有拼写和语法错误?
  • Q?3分)历的字体太小?
  • Q?4分)所有的~程l验只是在学校中?
  • Q?4分)只知道一门编E语a?
  • Q?6分)历有三页以上?
  • Q?6分)历中有一些无关的东西?
  • Q?7分)得到q一些课E的认证?
  • Q?8分)相关专业评很低的成l?
  • Q?10分)在技能中Q把Visual Basic列在W一的位|?
  • Q?12分)在Facebook中,有过光膀子的照片?
  • Q?15分)历中的羃q同时用了I格和Tab键?
  • p.s.Z部门是这样阅ȝ历的

    * Q?15分)如果历中说到了和工作职位相符的技能超q?ơ以上?
    * Q?8分)如果历中说到了和工作职位相符的技?ơ到5ơ?
    * Q?4分)如果历中说到了和工作职位相符的技?ơ到2ơ?
    * Q?4分)Cover LetterQ?#8220;求职?#8221;?#8220;自荐?#8221;Q提C招聘人员?
    * Q?2分)历中有Cover LetterQ求职信Q?
    * Q?10分)没有提到和职位描q相关的技能?
    * Q?15分)没有受过大专教育?



    Java宅男 2009-11-13 15:58 发表评论
    ]]>
    ITAT5预赛怽http://www.tkk7.com/chenglu/archive/2009/10/17/itat5.htmlJava宅男Java宅男Sat, 17 Oct 2009 02:27:00 GMThttp://www.tkk7.com/chenglu/archive/2009/10/17/itat5.htmlhttp://www.tkk7.com/chenglu/comments/298662.htmlhttp://www.tkk7.com/chenglu/archive/2009/10/17/itat5.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/298662.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/298662.html阅读全文

    Java宅男 2009-10-17 10:27 发表评论
    ]]>
    送Google Wave邀??/title><link>http://www.tkk7.com/chenglu/archive/2009/10/15/Google_Wave.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Thu, 15 Oct 2009 02:38:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/10/15/Google_Wave.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/298331.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/10/15/Google_Wave.html#Feedback</comments><slash:comments>119</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/298331.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/298331.html</trackback:ping><description><![CDATA[<span style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2;"><span style="font-size: small; line-height: 17px; font-family: arial, sans-serif; text-align: left">4枚Google Wave提名Q大家申请吧~<img alt="" src="http://www.tkk7.com/images/blogjava_net/chenglu/11.jpg" border="0" /></span></span><img src ="http://www.tkk7.com/chenglu/aggbug/298331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-10-15 10:38 <a href="http://www.tkk7.com/chenglu/archive/2009/10/15/Google_Wave.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cơ堕?/title><link>http://www.tkk7.com/chenglu/archive/2009/09/28/duoluo.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 28 Sep 2009 07:29:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/09/28/duoluo.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/296797.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/09/28/duoluo.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/296797.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/296797.html</trackback:ping><description><![CDATA[今天天气不错Q挺风和日丽?#8230;…<br /> 被Ajax老师鄙视了一ơ,我要交作业,她却不回头的CQ原因是上节课作业没做完Q老师批评说我上课不好好听讌Ӏ?br /> 在做目的时候,一个action调用数据库操作类的时候,先是把用户名密码填错Q又忘写端口?#8230;…<br /> 然后q是老报错,最后一看,竟然q数据库的jdbc jar包都没导?#8230;…<br /> 万事开头难Q堕落真单,数据库连接都成问题了Q哎? <img src ="http://www.tkk7.com/chenglu/aggbug/296797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-09-28 15:29 <a href="http://www.tkk7.com/chenglu/archive/2009/09/28/duoluo.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2文g上传以及I指针异常解?/title><link>http://www.tkk7.com/chenglu/archive/2009/09/27/struts2_upload.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sun, 27 Sep 2009 00:54:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/09/27/struts2_upload.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/296583.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/09/27/struts2_upload.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/296583.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/296583.html</trackback:ping><description><![CDATA[     摘要: uploadFile.java  1package action;  2  3import java.io.File;      4import java.text.DateFormat;      5import ...  <a href='http://www.tkk7.com/chenglu/archive/2009/09/27/struts2_upload.html'>阅读全文</a><img src ="http://www.tkk7.com/chenglu/aggbug/296583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-09-27 08:54 <a href="http://www.tkk7.com/chenglu/archive/2009/09/27/struts2_upload.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts标签http://www.tkk7.com/chenglu/archive/2009/09/16/struts_tags_lib.htmlJava宅男Java宅男Tue, 15 Sep 2009 23:58:00 GMThttp://www.tkk7.com/chenglu/archive/2009/09/16/struts_tags_lib.htmlhttp://www.tkk7.com/chenglu/comments/295241.htmlhttp://www.tkk7.com/chenglu/archive/2009/09/16/struts_tags_lib.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/295241.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/295241.html  AQ?br /> <s:a xhref=""></s:a>-----链接,cM于html里的<a></a>
    <s:action name=""></s:action>-----执行一个view里面的一个action
    <s:actionerror/>-----如果action的errors有值那么显C出?br /> <s:actionmessage/>-----如果action的message有值那么显C出?br /> <s:append></s:append>-----d一个值到listQ类glist.add();
    <s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,q个是ajax

    BQ?br /> <s:bean name=""></s:bean>-----cM于struts1.x中的QJavaBean的?br />
    CQ?br /> <s:checkbox></s:checkbox>-----复选框
    <s:checkboxlist list=""></s:checkboxlist>-----多选框
    <s:combobox list=""></s:combobox>-----下拉?br /> <s:component></s:component>-----囑փW号

    DQ?br /> <s:date/>-----获取日期格式
    <s:datetimepicker></s:datetimepicker>-----日期输入?br /> <s:debug></s:debug>-----昄错误信息
    <s:div></s:div>-----表示一个块Q类ghtml?lt;div></div>
    <s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----双下拉框

    EQ?br /> <s:if test=""></s:if>
    <s:elseif test=""></s:elseif>
    <s:else></s:else>-----q?个标{一起用,表示条g判断

    FQ?br /> <s:fielderror></s:fielderror>-----昄文g错误信息
    <s:file></s:file>-----文g上传
    <s:form action=""></s:form>-----获取相应form的?br />
    GQ?br /> <s:generator separator="" val=""></s:generator>----?lt;s:iterator>标签一起?br />
    HQ?br /> <s:head/>-----?lt;head></head>里用,表示头文件结?br /> <s:hidden></s:hidden>-----隐藏?br />
    IQ?br /> <s:i18n name=""></s:i18n>-----加蝲资源包到值堆?br /> <s:include value=""></s:include>-----包含一个输出,servlet或jsp面
    <s:inputtransferselect list=""></s:inputtransferselect>-----获取form的一个输?br /> <s:iterator></s:iterator>-----用于遍历集合

    LQ?br /> <s:label></s:label>-----只读的标{?br />
    MQ?br /> <s:merge></s:merge>-----合ƈ遍历集合出来的?br />
    OQ?br /> <s:optgroup></s:optgroup>-----获取标签l?br /> <s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右选择?br />
    PQ?br /> <s:param></s:param>-----为其他标{提供参?br /> <s:password></s:password>-----密码输入?br /> <s:property/>-----得到'value'的属?br /> <s:push value=""></s:push>-----value的值push到栈?从而property标签的能够获取value的属?br />
    RQ?br /> <s:radio list=""></s:radio>-----单选按?br /> <s:reset></s:reset>-----重置按钮

    SQ?br /> <s:select list=""></s:select>-----单选框
    <s:set name=""></s:set>-----赋予变量一个特定范围内的?br /> <s:sort comparator=""></s:sort>-----通过属性给list分类
    <s:submit></s:submit>-----提交按钮
    <s:subset></s:subset>-----为遍历集合输出子?br />
    TQ?br /> <s:tabbedPanel id=""></s:tabbedPanel>-----表格?br /> <s:table></s:table>-----表格
    <s:text name=""></s:text>-----I18n文本信息
    <s:textarea></s:textarea>-----文本域输入框
    <s:textfield></s:textfield>-----文本输入?br /> <s:token></s:token>-----拦截?br /> <s:tree></s:tree>-----?br /> <s:treenode label=""></s:treenode>-----树的l构

    UQ?br /> <s:updownselect list=""></s:updownselect>-----多选择?br /> <s:url></s:url>-----创徏url

    Java宅男 2009-09-16 07:58 发表评论
    ]]>
    计算ZU?/title><link>http://www.tkk7.com/chenglu/archive/2009/09/12/nrce_jsj_2.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 12 Sep 2009 13:34:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/09/12/nrce_jsj_2.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/294892.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/09/12/nrce_jsj_2.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/294892.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/294892.html</trackback:ping><description><![CDATA[1Q栈和队列的共同特点?C<br /> AQ都是先q先?br /> BQ都是先q后?br /> CQ只允许在端点处插入和删除元?br /> DQ没有共同点<br /> <br /> 2Q已知二叉树<strong>后序遍历</strong>序列是dabecQ?strong>中序遍历</strong>序列是debacQ它?strong>前序遍历</strong>序列?br /> AQacbed<br /> BQdecab<br /> CQdeabc<br /> DQcedba<br /> <br /> 3Q链表不h的特Ҏ B<br /> AQ不必事先估计存储空?br /> BQ可随机讉KM元素<br /> CQ插入删除不需要移动元?br /> DQ所需I间与线性表长度成正?br /> <br /> 5Qؓ了提高测试的效率Q应?nbsp; D<br /> AQ随机选取试数据<br /> BQ取一切可能的输入数据作ؓ试数据<br /> CQ在完成~码以后制定软g的测试计?br /> DQ集中对付那些错误群集的E序<br /> <br /> <h3>法的时间复杂度是指法执行q程中所需要的基本q算ơ数</h3> <p> </p> <img src ="http://www.tkk7.com/chenglu/aggbug/294892.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-09-12 21:34 <a href="http://www.tkk7.com/chenglu/archive/2009/09/12/nrce_jsj_2.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BlogGTK linux&#31471;blog&#36828;&#31243;&#21457;&#24067;http://www.tkk7.com/chenglu/archive/2009/09/11/bloggtk.htmlJava宅男Java宅男Fri, 11 Sep 2009 00:51:00 GMThttp://www.tkk7.com/chenglu/archive/2009/09/11/bloggtk.htmlhttp://www.tkk7.com/chenglu/comments/294671.htmlhttp://www.tkk7.com/chenglu/archive/2009/09/11/bloggtk.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/294671.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/294671.html

    Java宅男 2009-09-11 08:51 发表评论
    ]]>
    ?/title><link>http://www.tkk7.com/chenglu/archive/2009/08/03/stack.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 03 Aug 2009 10:19:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/08/03/stack.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/289645.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/08/03/stack.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/289645.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/289645.html</trackback:ping><description><![CDATA[栈(stackQ在计算机科学中是限定仅在表进行插入或删除操作的线形表?br />     栈是一U数据结构,它按照先q后出的原则存储数据Q先q入的数据被压入栈底Q最后的数据在栈Ӟ需要读数据的时候从栈顶开始弹出数据(最后一个数据被W一个读出来Q?br />     栈是只能在某一端插入和删除的特D线性表。用桶堆U物品,先堆q来的压在底下,随后一件一件往堆。取走时Q只能从上面一件一件取。堆和取都在剙q行Q底部一般是不动的?br />   栈就是一U类似桶堆积物品的数据结构,q行删除和插入的一端称栈顶Q另一堆称栈底。插入一般称栈(PUSHQ,删除则称为退栈(POPQ?栈也UCؓ后进先出表(LIFO表)?br />     1、进栈(PUSHQ算?br />         ①若TOP≥n时Q则l出溢出信息Q作出错处理Q进栈前首先查栈是否已满Q满则溢出;不满则作②)Q?br />         ②置TOP=TOP+1Q栈指针加1Q指向进栈地址Q;<br />         ③S(TOP)=XQ结束(X为新q栈的元素)Q?br />     2、退栈(POPQ算?br />       ①若TOP≤0Q则l出下溢信息Q作出错处理(退栈前先检查是否已为空栈, I则下溢Q不I则作②)Q?br />       ②X=S(SOP)Q(退栈后的元素赋lXQ;<br />       ③TOP=TOP-1Q结束(栈指针减Q,指向栈顶Q?br /> 栈可以用来在函数调用的时候存储断点,做递归时要用到栈! <img src ="http://www.tkk7.com/chenglu/aggbug/289645.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-08-03 18:19 <a href="http://www.tkk7.com/chenglu/archive/2009/08/03/stack.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些刚发现的网址http://www.tkk7.com/chenglu/archive/2009/07/20/some_webs.htmlJava宅男Java宅男Mon, 20 Jul 2009 05:52:00 GMThttp://www.tkk7.com/chenglu/archive/2009/07/20/some_webs.htmlhttp://www.tkk7.com/chenglu/comments/287461.htmlhttp://www.tkk7.com/chenglu/archive/2009/07/20/some_webs.html#Feedback1http://www.tkk7.com/chenglu/comments/commentRss/287461.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/287461.html
    http://www.oracle.com/technology/global/cn/tech/java/ajax.html

    IBM有这些教E?oracle也有咯~呵呵

    Java宅男 2009-07-20 13:52 发表评论
    ]]>
    JAVA认证l典面试题目整理http://www.tkk7.com/chenglu/archive/2009/07/13/java_mst.htmlJava宅男Java宅男Mon, 13 Jul 2009 12:14:00 GMThttp://www.tkk7.com/chenglu/archive/2009/07/13/java_mst.htmlhttp://www.tkk7.com/chenglu/comments/286615.htmlhttp://www.tkk7.com/chenglu/archive/2009/07/13/java_mst.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/286615.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/286615.html  当JavaE序q反了Java的语义规则时QJava虚拟机就会将发生的错误表CZؓ一个异常。违反语义规则包?U情c一U是Javacd内置的语义。例如数l下标越?会引发IndexOutOfBoundsException;讉Knull的对象时会引发NullPointerException。另一U情况就是Java允许E序员扩展这U语义检查,E序员可以创q异常Qƈ自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子cR?/p>

      2. Java的接口和C++的虚cȝ相同和不同处?/p>

      ׃Java不支持多l承Q而有可能某个cL对象要用分别在几个cL对象里面的方法或属性,现有的单l承机制׃能满求。与l承相比Q接口有更高的灵zL,因ؓ接口中没有Q何实C码。当一个类实现了接口以后,该类要实现接口里面所有的Ҏ和属性,接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口?/p>

      3. 垃圾回收的优点和原理。ƈ考虑2U回收机制?/p>

      Java语言中一个显著的特点是引入了垃圑֛收机Ӟ使c++E序员最头疼的内存的问题q刃而解Q它使得JavaE序员在~写E序的时候不再需要考虑内存理。由于有个垃圑֛收机ӞJava中的对象不再?#8220;作用?#8221;的概念,只有对象的引用才?#8220;作用?#8221;。垃圑֛收可以有效的防止内存泄露Q有效的使用可以使用的内存。垃圑֛收器通常是作Z个单独的低别的U程q行Q不可预知的情况下对内存堆中已经M的或者长旉没有使用的对象进行清除和回收Q程序员不能实时的调用垃圑֛收器Ҏ个对象或所有对象进行垃圑֛收。回收机制有分代复制垃圾回收和标记垃圑֛Ӟ增量垃圾回收?/p>

      4.U程同步的方法?/p>

      wait():使一个线E处于等待状态,q且释放所持有的对象的lock?/p>

      sleep():使一个正在运行的U程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常?/p>

      notify():唤醒一个处于等待状态的U程Q注意的是在调用此方法的时候,q不能确切地唤醒某一个等待状态的U程Q而是由JVM定唤醒哪个U程Q而且不是按优先?/p>

      Allnotity():唤醒所有处入等待状态的U程Q注意ƈ不是l所有唤醒线E一个对象的锁,而是让它们竞争?/p>

      5. Error与Exception有什么区别?

      Error表示pȝU的错误和程序不必处理的异常Q?/p>

      Exception表示需要捕捉或者需要程序进行处理的异常?/p>

      6. 在java中一个类被声明ؓfinalcdQ表CZ什么意思?

      表示该类不能被承,是顶U类?/p>

      7. heap和stack有什么区别?/p>

      栈是一U线形集合,其添加和删除元素的操作应在同一D完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素?/p>

      8. 谈谈final, finally, finalize的区别?/p>

      final—修饰符(关键?如果一个类被声明ؓfinalQ意味着它不能再z出新的子c,不能作ؓ父类被ѝ因此一个类不能既被声明?abstract的,又被声明为final的。将变量或方法声明ؓfinalQ可以保证它们在使用中不被改变。被声明为final的变量必d声明时给定初|而在以后的引用中只能dQ不可修攏V被声明为final的方法也同样只能使用Q不能重载?

      finally—异常处理时提供 finally 块来执行M清除操作。如果抛Z个异常,那么相匹配的 catch 子句׃执行Q然后控制就会进?finally ?如果有的??br />  
      finalize—方法名。Java 技术允怋?finalize() Ҏ在垃圾收集器对象从内存中清除出M前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对q个对象调用的。它是在 ObjectcM定义的,因此所有的c都l承了它。子c覆?finalize() Ҏ以整理系l资源或者执行其他清理工作。finalize() Ҏ是在垃圾攉器删除对象之前对q个对象调用的?/p>

      9. Anonymous Inner Class (匿名内部c?

      是否可以extends(l承)其它c,是否可以implements(实现)interface(接口)?

      匿名的内部类是没有名字的内部cR不能extends(l承) 其它c,但一个内部类可以作ؓ一个接口,由另一个内部类实现?/p>

      10. Static Nested Class ?Inner Class的不?

      Nested Class (一般是C++的说?QInner Class (一般是JAVA的说?。Java内部cMC++嵌套cL大的不同在于是否有指向外部的引用上?/p>

      注: 静态内部类(Inner Class)意味着1创徏一个static内部cȝ对象Q不需要一个外部类对象Q?不能从一个static内部cȝ一个对象访问一个外部类对象?br />

    转蝲Q?a >http://edu.hsw.cn/system/2009/07/13/050238819.shtml


    Java宅男 2009-07-13 20:14 发表评论
    ]]>
    学生理pȝ 源代?/title><link>http://www.tkk7.com/chenglu/archive/2009/06/08/StudentMS_src.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 08 Jun 2009 01:13:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/06/08/StudentMS_src.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/280543.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/06/08/StudentMS_src.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/280543.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/280543.html</trackback:ping><description><![CDATA[     摘要: 源代码以及下?nbsp; <a href='http://www.tkk7.com/chenglu/archive/2009/06/08/StudentMS_src.html'>阅读全文</a><img src ="http://www.tkk7.com/chenglu/aggbug/280543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-06-08 09:13 <a href="http://www.tkk7.com/chenglu/archive/2009/06/08/StudentMS_src.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>评设计——学生管理系l?/title><link>http://www.tkk7.com/chenglu/archive/2009/06/08/Student_Manager.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 08 Jun 2009 00:58:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/06/08/Student_Manager.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/278202.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/06/08/Student_Manager.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/278202.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/278202.html</trackback:ping><description><![CDATA[     摘要: 省市学?大一菜鸟的一个小的评设计  <a href='http://www.tkk7.com/chenglu/archive/2009/06/08/Student_Manager.html'>阅读全文</a><img src ="http://www.tkk7.com/chenglu/aggbug/278202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-06-08 08:58 <a href="http://www.tkk7.com/chenglu/archive/2009/06/08/Student_Manager.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLException: No suitable driver for XXX解决ҎQNetBeansQ?/title><link>http://www.tkk7.com/chenglu/archive/2009/05/26/SQLException.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Tue, 26 May 2009 05:37:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/05/26/SQLException.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/277987.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/05/26/SQLException.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/277987.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/277987.html</trackback:ping><description><![CDATA[<p>今日研究NetBeansƲ完成课E设计学生管理系l,</p> <p>H然发现不会q接数据库了……</p> <p>思烦中,用jsp的方法去test了一下,感觉……对啊Q老师曄讲过q个跟jsp链接数据库是一LQ巨?#8230;… =_=Q?/p> <p>Class.forName………</p> <p>con………..</p> <p>stm………..</p> <p>——运行——报错(ClassNotFoundExceptionQ——添加库MySQL-JDBC</p> <p>应该没错了吧Q但?#8230;…</p> <p>SQLException: No suitable driver for mysql://localhost:3306/stu</p> <p>而后发现了一个很耻i的问题:</p> <p>con = DriverManager.getConnection<strong>("mysql://localhost:3306/stu","×","×");</strong></p> <p><strong>天啊Qmysql://localhost:3306/stuQ我竟然忘记?jdbc在mysql前面Q~?/strong></p> <p><strong></strong> <strong>--------------------------------------------------------</strong></p> <p>中国Ud老M公厕Q守门大爯Q进?毛,出来2毛?br />    老M愣说Q出来还收费Q大爯Q学习移动,双向收费?br />    老M厕所出来又被拦住Q你y的?号坑Q交1元钱的选号费,放了一个屁Q交1元的漫游费,过3分钟Q再?元的时贏V?br />    厕所有背景音乐,收彩铃费2毛?br />    大爷劝老总,如果你经常光,q是办个厕所套餐比较合算?br />    老d怒:q是那家的王法!大爷一摆手Q动感地带,我的地盘我做?<br />    大家端午节开?/p> <img src ="http://www.tkk7.com/chenglu/aggbug/277987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-05-26 13:37 <a href="http://www.tkk7.com/chenglu/archive/2009/05/26/SQLException.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>腾讯q度创新大赛试题Q?/title><link>http://www.tkk7.com/chenglu/archive/2009/05/09/tencent.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 09 May 2009 06:31:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/05/09/tencent.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/269753.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/05/09/tencent.html#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/269753.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/269753.html</trackback:ping><description><![CDATA[<p>Problem A: University</p> <p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K</p> <p><b>Total Submissions:</b> 726<br><strong>Accepted:</strong> 422 <p>Description <p>企鹅大学有很多很多名学生Q课E也很多。譬如企鹅语Q北极熊语,企鹅初数学Q企鹅高U数学等{等{?#8230;… 现在Q企鹅大学的校长惌你ؓ他们写一个程序:计算d的程序。请你由他们输入评的数量以及一个学生每门课E的分数Q输学生的d? <p>Input <p>W一行:一个整?i>n</i>(1 ≤ <i>n</i> ≤ 5000)Q代表企鹅大学的评数目?br>W?至第<i>n</i>+1行:每行有一?整数Q第<i>i</i>+1行代表某一位学生在W?i>i</i>门课上取得的分数。分Cؓ0?00的整数?<p>Output <p>一个整数。代表该学生在n门课中所得的d?<p>Sample Input<pre>3 100 99 100 </pre> <p>Sample Output<pre>299</pre><pre> </pre> <p>Problem B: Doudou <p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K <p><b>Total Submissions:</b> 323<br><strong>Accepted:</strong> 75 <p>Description <p>有只企鹅叫豆豆,L被别的企鹅欺负。豆豆在长期的隐忍之后,掌握了所有企鹅的高度和攻d强度Q还得到了一把黄金剑。在拥有了黄金剑以后Q豆豆终于可以展开l地大反凅R但q把黄金剑的用法却很奇怪? <p>首先Q豆豆第一ơ可以选择M一只企鹅开始挑战。豆豆这一ơ必胜? <p>再次Q当豆豆已经挑战q某一只企鹅后Q再下一ơ的挑战对象只能是比上一名对手高Q且比上一名对手攻d强的企鹅。这栯豆必胜。否则黄金剑会觉得打的没意思而故意发脾气输掉。豆豆还会被大家集体暴打? <p>面对着q把脾气很大的黄金剑Q豆豆想请你帮助他计一下,他最多可以连l击败多只企鹅Q? <p>Input <p>W一行:一个数?i>n</i>Q代表企鹅群里除了豆豆一共有<i>n</i>(1 ≤ <i>n</i> ≤ 1000)只企鹅?br>W?至第<i>n</i>+1行:每行2个数字。第<i>i</i>+1行的W一个数字ؓ企鹅<i>i</i>的高度。第<i>i</i>+1行的W二个数字ؓ企鹅<i>i</i>的攻d? ≤ 高度,d?≤ 1,000,000? <p>Output <p>一个数。代表豆豆最多可以连l击败的企鹅数? <p>Sample Input<pre><p><br><b>Sample Input #1</b><br><b>Sample Input #2</b><p><br>3<br>1 3<br>3 2<br>2 4<br>5<br>10 1<br>9 2<br>7 3<br>6 4<br>5 5<br></p></pre> <p>Sample Output<pre><p><br><b>Sample Output #1</b><br><b>Sample Output #2</b><p><br>2<br>1</p></pre> <p> </p> <p>Problem C: Ball <p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K <p><b>Total Submissions:</b> 6<br><strong>Accepted:</strong> 0 <p>Description <p>l出I间上两个运动的球Q球心坐标在分别?i><b>A</b></i>(xa , ya , 0)Q?b><i>B</i></b>(xb , yb , 0)Q半径分别ؓ<i>Ra</i> , <i>Rb</i>Q速度分别?i>Va</i>( vax, vay , 0), <i>Vb</i>( vbx , vby, 0)。判断两个小球是否会撞Q若会碰撞, 输出首次撞时的时刻和两个小球的坐标Q若不会撞Q输?#8220;Impossible”Q球心和速度的z坐标恒ؓ0Q可本题视为只是^面上的运动。初始时Mؓ0Q若初始时刻球贴在一P视ؓ首次撞Q? <p>Input <p>W一行:一个整数TQ(<i>T</i> ≤ 30Q,表示下面?i>T</i>l数据?br>接下来,每两行组成一l数据,首行包含5个实敎ͼ用空格隔开Q依ơ是xa , ya , vax, vay , RaQ下面一行也包含5个实敎ͼ依次是xa , ya , vbx , vby, Rb。每l数据之间有一个空行? <p>Output <p>对于每组数据Q如果两个小球会撞Q输出首ơ碰撞时的时?i>t</i>Q和两个球的坐标xap , yap , xbp , ybp Q用I格隔开Q保留三位小数。如果不能,输出“Impossible”? <p>Sample Input<pre>3 100 200 0 0 55 100 100 0 0 45 131 123 45 2 43 454 230 0 -5 35 100 100 1 1 31 200 200 2 2 23 </pre> <p>Sample Output<pre>0.000 100.000 200.000 100.000 100.000 6.179 409.053 135.358 454.000 199.105 Impossible </pre> <p> </p> <p>Problem D: String <p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K <p><b>Total Submissions:</b> 14<br><strong>Accepted:</strong> 0 <p>Description <p>l定一个字W串S[1..n]和一个整数TQ现在需要在字符串S中找出长度不于T的一个子Ԍ使得其在原串中不重叠出现的次数最多,求这个次数? <p>Input <p>W一行:一个整数T(T > 1)<br>W二行:一个字W串SQ且仅包含小写字母,字符串长度不过10000 <p>Output <p>一个整数。代表出现最多的ơ数 <p>Sample Input<pre>2 ababab </pre> <p>Sample Output<pre>3</pre> <p> </p> <p>Problem E: Papercut <p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K <p><b>Total Submissions:</b> 3<br><strong>Accepted:</strong> 0 <p>Description <p>现在桌面上有一张矩形纸Q上Ҏ<i>n</i>×<i>m</i>个格子,每个格子有一个数字?每张矩ŞU可以算Z个数值FQ?i>F</i>是由U张里Q意两个不同的格子里的数字怹之和。如果该U只有一个格子,那么<i>F</i>=0? <p>剪纸规则是:<br>1、沿格子边缘一直剪成两个矩形纸Q每张纸里必L数字?br>2、每ơ剪U在桌面上Q意选一张矩形纸Q进?操作Q再把剪出来的两张纸攑ֈ桌面? <p>现在你可以对桌面上的U最多剪kơ,问最后桌面上所有矩形纸的Fg和最是多少Q? <p>1 ≤ <i>n</i> ≤ 10<br>1 ≤ <i>m</i> ≤ 10<br>1 ≤ <i>k</i> ≤ 50 <p>Input <p>W一行:3个整?i>n</i>, <i>m</i>, <i>k</i><br>接下?i>n</i>行:每行<i>m</i>个正整数Q范围在[1,10]Q第<i>i</i>行第<i>j</i>个数表示当前桌面那张矩ŞUR边第<i>i</i>行第<i>j</i>个格子里的数字? <p>Output <p>一个整数。代表最?i>F</i>值和? <p>Sample Input<pre><p><br><b>Sample Input #1</b><br><b>Sample Input #2</b><p><br>4 4 4<br>1 1 1 1<br>1 1 1 1<br>1 1 1 1<br>1 1 1 1<br> <br>10 10 5<br>4 2 3 5 6 10 1 6 5 8 <br>3 6 9 1 7 10 7 10 8 1 <br>7 8 3 3 2 5 9 9 8 2 <br>5 5 9 9 3 10 2 9 10 2 <br>1 1 6 7 6 8 3 9 6 8 <br>7 1 2 5 3 2 3 7 8 10 <br>10 9 8 9 7 8 10 7 3 9 <br>6 3 6 2 1 7 10 6 7 2 <br>2 4 8 4 5 9 10 5 9 10 <br>7 4 3 2 4 9 9 9 8 1<br></p></pre> <p>Sample Output<pre><p><br><b>Sample Output #1</b><br><b>Sample Output #2</b><p><br>18<br>26612 </p></pre> <p>Hint <p>Sample 1说明Q?按照下面方式剪纸4?br>1   1   1   1<br>-------------<br>1 | 1 | 1 | 1<br>   |   |   | <br>1 | 1 | 1 | 1<br>   |   |   | <br>1 | 1 | 1 | 1<br>得到6+3+3+3+3=18</p> <img src ="http://www.tkk7.com/chenglu/aggbug/269753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-05-09 14:31 <a href="http://www.tkk7.com/chenglu/archive/2009/05/09/tencent.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>“快”在l节 J2EEE序的性能优化技?/title><link>http://www.tkk7.com/chenglu/archive/2009/04/04/let-the-java-good.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 04 Apr 2009 01:16:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/04/04/let-the-java-good.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/263861.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/04/04/let-the-java-good.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/263861.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/263861.html</trackback:ping><description><![CDATA[  应用J2EEq_开发的pȝ的性能是系l用者和开发者都x的问题,本文从服务器端编E时应注意的几个斚w讨论代码Ҏ能的媄响,qȝ一些解决的。关键词Q性能QJavaQJ2EEQEJBQServletQJDBC <h3>一、概?/h3> <p> Java 2 Platform, Enterprise Edition (J2EE)是当前很多商业应用系l用的开发^収ͼ该技术提供了一个基于组件的Ҏ来设计、开发、装配和部v企业U应用程序。J2EEq_提供了一个多层结构的分布式的应用E序模型Q可以更快地开发和发布的新的应用解x案?#160;</p> <p>J2EE是一U技术规范,定义了整个标准的应用开发体pȝ构和一个部|环境,应用开发者开发时只要专注于具体商业逻辑和商业业务规则的实现上,而其他的诸如事务、持久化、安全等pȝ开发问题可以由应用E序容器或者服务器处理Q开发完成后Q就可以方便地部|到实现规范的应用服务器中?#160;</p> <p>作ؓ|络上的商业应用pȝQ同时访问的人数是很多的Q在大量讉K的情况下Q过多的资源h和有限的服务器资源(内存、CPU旉、网l带宽等Q之间就会出现矛盾,应用pȝ的性能显得很重要了,有时正确的代码ƈ不能保证目的成功,性能往往是最后决定一个项目是否成功关键?/p> <p>本文主要从性能的角度出发,讨论J2EE服务器端的代码性能优化和提升。 </p> <p>二、常见的Java ~程 J2EE语言基础是JavaQ常用的Java代码问题对应用系l的性能影响Q?/p> <p>下面讨论了一些应该注意方面?#160;</p> <p>使用StringBuffer代替String 当处理字W串的相加时Q常见的写法是:</p> <h1 id="artibodyTitle" style="text-align: left;font-size: 20px; font-weight: bold; font-family: 宋体; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="color: #000000; font-family: Arial; font-size: 14px; font-weight: normal; line-height: 24px; "><strong><span style="font-weight: normal; "><strong><span style="font-weight: normal; "> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>String str1 = "Hello";<br /> String str2 = "welcome to world";<br /> String str3 = str1 + ", " + str2 +"!";<br /> System.out.println(str3);</td> </tr> </tbody> </table> </span></strong></span></strong></span></h1> <span id="y6eu8gu" class="Apple-tab-span" style="white-space:pre"> </span>很多人都知道Q这L代码效率是很低的Q因为String是用来存储字W串帔R的,如果要执?#8220;Q?#8221;的操作,pȝ会生成一些时的对象Qƈ对这些对象进行管理,造成不必要的开销?br /> <br />   如果字符串有q接的操作,替代的做法是用StringBuffercȝappendҎQ它的缺省构造函数和append的实现是Q?br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>public StringBuffer() { // 构造函?br /> this(16); // ~省定w16} <br /> <br /> public synchronized StringBuffer append(String str) { <br />  if (str == null) { <br />   str = String.valueOf(str); <br />  } <br /> <br />  int len =str.length(); <br />  int newcount = count + len; <br />  if(newcount > value.length) <br /> <br />  expandCapacity(newcount); <br /> <br />  // 扩充定w<br />  str.getChars(0, len, value, count); <br />  count = newcount; <br />  return this; <br /> }</td> </tr> </tbody> </table> <br />   当字W串的大超q缺?6Ӟ代码实现了容量的扩充Qؓ了避免对象的重新扩展其容量,更好的写法ؓQ?br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>StringBuffer buffer = new StringBuffer(30); <br /> // 分配指定的大?br /> buffer.append("hello"); <br /> buffer.append(","); <br /> buffer.append("welcometo world!"); <br /> String str = buffer.toString();</td> </tr> </tbody> </table> <br />   ·生成对象Ӟ分配合理的空间和大小<br /> <br />   Java中的很多c都有它的默认的I间分配大小Q对于一些有大小的对象的初始化,应该预计对象的大,然后使用q行初始化,上面的例子也说明了这个问题,StringBuffer创徏Ӟ我们指定了它的大?br /> <br />   另外的一个例子是VectorQ当声明Vector vectQnew Vector()Ӟpȝ调用Q?br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>public Vector() {// ~省构造函?br />  this(10); // 定w?10;<br /> }</td> </tr> </tbody> </table> <br />   ~省分配10个对象大容量。当执行addҎӞ可以看到具体实现为:.. <br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>public synchronized boolean add(Object o) {<br />  modCount++;<br />  ensureCapacityHelper(elementCount+1);<br />  elementData[elementCount++] =o;<br /> <br />  return true;<br /> }<br /> <br /> private void ensureCapacityHelper(int minCapacity) { <br />  int oldCapacity = elementData.length; <br />  if (minCapacity > oldCapacity) { <br />   Object oldData[] = elementData; <br />   int newCapacity = (capacityIncrement > 0) ? (oldCapacity + capacityIncrement) : <br /> (oldCapacity * 2); <br />   if (newCapacity < minCapacity) { <br />    newCapacity = minCapacity; <br />   } <br />   elementData = new Object[newCapacity]; <br />   System.arraycopy(oldData, 0, elementData, 0, elementCount); <br />  } <br /> }</td> </tr> </tbody> </table> <br />   我们可以看到Q当Vector大小过原来的大时Q一些代码的目的是Z做容量的扩充Q在预先知道该Vector大小的话Q可以指定其大小Q避免容量扩充的开销Q如知道Vector大小?00Ӟ初始化是可以象q样?br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>Vector vect Q?. new Vector(100);</td> </tr> </tbody> </table> <br />   ·优化循环?br /> <br />   循环是比较重复运行的地方Q如果@环次数很大,循环体内不好的代码对效率的媄响就会被攑֤而变的突出。考虑下面的代码片Q?. <br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>Vector vect = new Vector(1000);<br /> ...<br /> for( inti=0; i<vect.size(); i++){<br />  ...<br /> }</td> </tr> </tbody> </table> <br />   for循环部分改写成:<br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>int size = vect.size();<br /> for( int i=0; i>size; i++){<br />  ...<br /> }</td> </tr> </tbody> </table> <br />   如果size=1000Q就可以减少1000ơsize()的系l调用开销Q避免了循环体重复调用?br /> <br />   再看如下的代码片Q?. <br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>for (int i = 0;i <100000;i++)<br /> if (i%10 == 9) {<br />  ... // 每十ơ执行一?br /> }</td> </tr> </tbody> </table> <br />   改写成也可以提高效率Q?. <br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>for(inti =0,j =10; i<100000; i++,j--){<br />  if(j == 0){<br />   ... // 每十ơ执行一?br />   j = 10;<br />  }<br /> }</td> </tr> </tbody> </table> <br />   所以,当有较大的@环时Q应该检查@环内是否有效率不高的地方Q寻找更优的Ҏ加以改进?br /> <br />   ·对象的创?br /> <br />   量用new来初始化一个类的实例,当一个对象是用newq行初始化时Q其构造函数链的所有构造函数都被调用到Q所以new操作W是很消耗系l资源的Qnew一个对象耗时往往是局部变量赋D时的上千倍。同Ӟ当生成对象后Q系l还要花旉q行垃圾回收和处理?br /> <br />   当new创徏对象不可避免Ӟ注意避免多次的用new初始化一个对象?br /> <br />   量在用时再创对象。如Q?br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>NewObject object = new NewObject();<br /> int value;<br /> if(i>0 )<br /> {<br />  value =object.getValue();<br /> }</td> </tr> </tbody> </table> <br />   可以修改为:<br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>int value;<br /> if(i>0 )<br /> {<br />  NewObject object = new NewObject(); <br />  Value =object.getValue(); <br /> }</td> </tr> </tbody> </table> <br />   另外Q应该尽量重复用一个对象,而不是声明新的同cd象。一个重用对象的Ҏ是改变对象的|如可以通过setValue之类的方法改变对象的变量辑ֈ重用的目的?br /> <br />   ·变量的注意事?br /> <br />   量使用局部变量,调用Ҏ时传递的参数以及在调用中创徏的时变量都保存在栈QStackQ?中,速度较快。其他变量,如静态变量、实例变量等Q都在堆QHeapQ中创徏Q速度较慢?br /> <br />   量使用静态变量,卛_修饰WstaticQ如果类中的变量不会随他的实例而变化,可以定义ؓ静态变量,从而他所有的实例都共享这个变量?br /> <br />   ·ҎQMethodQ调?br /> <br />   在Java中,一切都是对象,如果有方法(MethodQ调用,处理器先要检查该Ҏ是属于哪个对象,该对象是否有效,对象属于什么类型,然后选择合适的Ҏq调用?br /> <br />   可以减少Ҏ的调用,同样一个方法: <br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>public void CallMethod(int i ){<br />  if( i ==0 ){<br />   return;<br />  }<br />  ... // 其他处理<br /> }</td> </tr> </tbody> </table> <br />   如果直接调用Q?br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>int i = 0; <br /> ... <br /> CallMethod(i);</td> </tr> </tbody> </table> <br />   ׃如写成:<br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>int i = 0; <br /> ... <br /> <br /> if( i ==0 ){ <br />  CallMethod(i); <br /> }</td> </tr> </tbody> </table> <br />   不媄响可L等情况下,可以把几个小的方法合成一个大的方法?br /> <br />   另外Q在Ҏ前加上finalQprivate关键字有利于~译器的优化?br /> <br />   ·慎用异常处理 <br /> <br />   异常是Java的一U错误处理机Ӟ对程序来说是非常有用的,但是异常Ҏ能不利。抛出异帔R先要创徏一个新的对象,q进行相关的处理Q造成pȝ的开销Q所以异常应该用在错误处理的情况Q不应该用来控制E序程Q流E尽量用whileQif{处理?br /> <br />   在不是很影响代码健壮性的前提下,可以把几个try/catch块合成一个?br /> <br />   ·同步<br /> <br />   同步主要出现在多U程的情况,为多U程同时q行时提供对象数据安全的机制Q多U程是比较复杂话题,应用多线E也是ؓ了获得性能的提升,应该可能减同步?br /> <br />   另外Q如果需要同步的地方Q可以减同步的代码D,如只同步某个Ҏ或函敎ͼ而不是整个代码?br /> <br />   ·使用JavapȝAPI<br /> <br />   Java的API一般都做了性能的考虑Q如果完成相同的功能Q优先用API而不是自己写的代码,如数l复刉常的代码如下: <br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>int size = 1000;<br /> String[] strArray1 = new String[size];<br /> String[] strArray2 = new String[size];<br /> for(inti=0;i<size;i++){ // 赋?br />  strArray1[i] = (new String("Array: " + i));<br /> }<br /> <br /> for(inti=0;i<size;i++){ // 复制<br />  strArray2[i]=(new String((String)a[i]));<br /> }</td> </tr> </tbody> </table> <br />   如果使用Java提供的APIQ就可以提高性能Q?br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>int size = 1000;<br /> String[] strArray1 = new String[size];<br /> String[] strArray2 = new String[size];<br /> for(inti=0;i<size;i++){ // 赋?br /> strArray1[i] = (new String("Array: " + i));<br /> }<br /> <br /> System.arraycopy(strArray1,0,strArray2,0,size); // 复制</td> </tr> </tbody> </table> <br />   同样的一个规则是Q当有大量数据的复制Ӟ应该使用System.arraycopy()? <div class="8uy88w4" id="artibody" style="border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">  <strong>三、I/O 性能</strong><br /> <br />   输入/输出QI/OQ包括很多方面,我们知道Q进行I/O操作是很费系l资源的。程序中应该量用I/O操作。用时可以注意Q?. 合理控制输出函数System.out.println()对于大多时候是有用的,特别是系l调试的时候,但也会生大量的信息出现在控制台和日志上Q同时输出时Q有序列化和同步的过E,造成了开销?br /> <br />   特别是在发行版中Q要合理的控制输出,可以在项目开发时Q设计好一个Debug的工LQ在该类中可以实现输出开养I输出的别,Ҏ不同的情况进行不同的输出的控制?br /> <br />   ·使用~存<br /> <br />   d内存要比d文g要快很多Q应可能用缓册Ӏ?br /> <br />   可能用带有Buffer的类代替没有Buffer的类Q如可以用BufferedReader 代替ReaderQ用BufferedWriter代替Writer来进行处理I/O操作?br /> <br />   同样可以用BufferedInputStream代替InputStream都可以获得性能的提高?br /> <br />   <strong>四、Servlet</strong><br /> <br />   Servlet采用h——响应模式提供Web服务Q通过ServletResponse以及ServletRequestq两个对象来输出和接收用户传递的参数Q在服务器端处理用户的请求,Ҏh讉K数据库、访问别的ServletҎ、调用EJB{等Q然后将处理l果q回l客L?br /> <br />   ·量不用同?br /> <br />   Servlet是多U程的,以处理不同的hQ基于前面同步的分析Q如果有太多的同步就失去了多U程的优势了?<br /> <br />   ·不用保存太多的信息在HttpSession?br /> <br />   很多时候,存储一些对象在HttpSession中是有必要的Q可以加快系l的开发,如网上商店系l会把购物R信息保存在该用户的Session中,但当存储大量的信息或是大的对象在会话中是有害的,特别是当pȝ中用L讉K量很大,对内存的需求就会很高?br /> <br />   具体开发时Q在q两者之间应作好权衡?br /> <br />   ·清除Session<br /> <br />   通常情况Q当辑ֈ讑֮的超时时间时Q同时有些Session没有了活动,服务器会释放q些没有zd的SessionQ?. 不过q种情况下,特别是多用户q访Ӟpȝ内存要维护多个的无效Session?br /> <br />   当用户退出时Q应该手动释放,回收资源Q实现如下:.. <br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>HttpSession theSession = request.getSession(); <br /> // 获取当前Session<br /> if(theSession != null){ <br />  theSession.invalidate(); // 使该Session失效<br /> }</td> </tr> </tbody> </table> <br />   <strong>五、EJB 问题</strong><br /> <br />   EJB是Java服务器端服务框架的规范,软g厂商Ҏ它来实现EJB服务器。应用程序开发者可以专注于支持应用所需的商业逻辑Q而不用担心周围框架的实现问题。EJB规范详细地解释了一些最但是必ȝ服务Q如事务Q安全和名字{?br /> <br />   ·~存Home接口<br /> <br />   EJB库用Enterprise Bean 的客L通过它的Home接口创徏它的实例。客L能通过JNDI讉K它。服务器通过LookupҎ来获取?br /> <br />   JNDI是个q程对象Q通过RMI方式调用Q对它的讉K往往是比较费时的。所以,在设计时可以设计一个类专门用来~存Home接口Q在pȝ初始化时p得需要的Home接口q缓存,以后的引用只要引用缓存即可?br /> <br />   ·装Entity Bean<br /> <br />   直接讉KEntity Bean是个不好的习惯,用会话Bean装对实体Bean的访问能够改q事务管理,因ؓ每一个对getҎ的直接调用将产生一个事务,容器在每一个实体Bean的事务之后执行一?#8220;Load-Store”.. 操作?br /> <br />   最好在Session Bean中完成Entity Bean的封装,减少容器的事务处理,q在Session Bean中实C些具体的业务Ҏ?br /> <br />   ·释放有状态的Session Bean<br /> <br />   相当于HttpSessionQ当把一个Session Bean设ؓStatefulQ即有状态的Session Bean 后,应用容器QContainerQ就可能?#8220;钝化”QPassivateQ和zdQActivateQ过E,卛_d和二U缓存之间对SessionBeanq行存储位置的{U,在这个过E中Q存在序列化q程?br /> <br />   通常有状态Session Bean的释放是在超时时发生Q容器自动的清除该对象,但是如果交给容器理Q一斚w可能产生对象钝化Q另一斚w未超时期_pȝq要 l护一份该对象Q所以如果我们确认用完该StatefulSession Bean后不再需要时Q可以显式的其释放掉,Ҏ是调用:<br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>theSesionBean.remove();</td> </tr> </tbody> </table> <br />   <strong>六、数据库讉K</strong><br /> <br />   在J2EE开发的应用pȝ中,数据库访问一般是个必备的环节。数据库用来存储业务数据Q供应用E序讉K?br /> <br />   在Java技术的应用体系中,应用E序是通过JDBCQJava Database ConnectivityQ实现的接口来访问数据库的,JDBC支持“建立q接、SQL语句查询、处理结?#8221;{基本功能。在应用JDBC接口讉K数据库的q程中,只要Ҏ规范来实玎ͼ可以达到要求的功能?br /> <br />   但是Q有些时候进行数据查询的效率着实让开发h员不如所愿,明明Ҏ规范~写的程序,q行效果却很差,造成整个pȝ的执行效率不高?br /> <br />   ·使用速度快的JDBC驱动<br /> <br />   JDBC API包括两种实现接口形式Q一U是UJava实现的驱动,一U利用ODBC驱动和数据库客户端实玎ͼ具体有四U驱动模式ƈ各有不同的应用范_针对不同的应用开发要选择合适的JDBC驱动Q在同一个应用系l中Q如果选择不同的JDBC驱动Q在效率上会有差别?br /> <br />   例如Q有一个企业应用系l,不要求支持不同厂商的数据库,q时可以选择模式4的JDBC驱动Q该驱动一般由数据库厂商实现的Z本地协议的驱动,直接调用数据库管理系l用的协议Q减了模式3中的中间层?br /> <br />   ·使用JDBCq接?br /> <br />   Z提高讉K数据库的性能Q我们还可以使用JDBC 2.0的一些规范和Ҏ,JDBC是占用资源的Q在使用数据库连接时可以使用q接池Connection PoolingQ避免频J打开、关闭Connection。而我们知道,获取Connection是比较消耗系l资源的?br /> <br />   Connection~冲池是q样工作的:当一个应用程序关闭一个数据库q接Ӟq个q接q不真正释放而是被@环利用,建立q接是消耗较大的操作Q@环利用连接可以显著的提高性能Q因为可以减新q接的徏立?br /> <br />   一个通过DataSource获取~冲池获得连接,q连接到一个CustomerDB数据源的代码演示如下Q?br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>Context ctx = new InitialContext();<br /> DataSource dataSource = (DataSource) ctx.lookup("jdbc/CustomerDB");<br /> Connection conn = dataSource.getConnection("password","username");</td> </tr> </tbody> </table> <br />   ·~存DataSource<br /> <br />   一个DataSource对象代表一个实际的数据源。这个数据源可以是从关系数据库到表格形式的文Ӟ完全依赖于它是怎样实现的,一个数据源对象注册到JNDI名字服务后,应用E序可以从JNDI服务器上取得该对象,q用之和数据源建立q接?br /> <br />   通过上面的例子,我们知道DataSource是从q接池获得连接的一U方式,通过JNDI方式获得Q是占用资源的?br /> <br />   Z避免再次的JNDI调用Q可以系l中~存要用的DataSource?br /> <br />   ·关闭所有用的资源<br /> <br />   pȝ一般是q发的系l,在每ơ申请和使用完资源后Q应该释放供别h使用Q数据库资源每个模式的含义可以参考SUN JDBC的文档,不同是比较宝늚Q用完成后应该保证d的释放?<br /> <br />   L下面的代码段Q?<br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>Connection conn = null; <br /> Statement stmt = null; <br /> ResultSet rs = null; <br /> try { <br />  DataSource dataSource = getDataSource(); <br />  // 取的DataSource的方法,实现略?br />  conn = datasource.getConnection(); <br />  stmt = conn.createStatement(); <br />  rs = stmt.executeQuery("SELECT * FROM ..."); <br />  ... // 其他处理<br />  rs.close();<br />  stmt.close();<br />  conn.close();<br /> }catch (SQLException ex) {<br />  ... // 错误处理<br /> }</td> </tr> </tbody> </table> <br />   _看g没有什么问题,也有关闭相关如Connection{系l资源的代码Q但当出现异常后Q关闭资源的代码可能q不被执行,Z证资源的实已被关闭Q应该把资源关闭的代码放到finally块:<br /> <br /> <table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; "> <tbody> <tr> <td>Connection conn = null; <br /> Statement stmt = null; <br /> ResultSet rs = null; <br /> try { <br />  DataSource dataSource = getDataSource(); <br />  // 取的DataSource的方法,实现略?br />  conn = datasource.getConnection(); <br />  stmt = conn.createStatement(); <br />  rs = stmt.executeQuery("SELECT * FROM ..."); <br /> <br />  ... // 其他处理<br /> }catch (SQLException ex) { <br />  ... // 错误处理<br /> <br /> }finally{ <br />  if (rs!=null) { <br />   try { <br />    rs.close(); // 关闭ResultSet} <br />   catch (SQLException ex) { <br />    ... // 错误处理<br />   } <br />  } <br /> <br />  if (stmt!=null){ <br />   try { <br />    stmt.close(); // 关闭Statement} <br />   catch (SQLException ex) { <br />    ... // 错误处理<br />   } <br />  } <br />  if (conn!=null){ <br />   try { <br />    conn.close(); // 关闭Connection} <br />   catch (SQLException ex) { <br />    ... // 错误处理<br />   } <br />  } <br /> }</td> </tr> </tbody> </table> <br />   ·大型数据量处?br /> <br />   当我们在d诸如数据列表、报表等大量数据Ӟ可以发现使用EJB的方法是非常慢的Q这时可以用直接访问数据库的方法,用SQL直接存取数据Q从而消除EJB的经常开支(例如q程Ҏ调用、事务管理和数据序列化,对象的构造等Q?br /> <br />   ·~存l常使用的数?br /> <br />   对于构徏的业务系l,如果有些数据要经常要从数据库中读取,同时Q这些数据又不经常变化,q些数据可以在pȝ中缓存v来,使用时直接读取缓存,而不用频J的讉K数据库读取数据?br /> <br />   ~存工作可以在系l初始化时一ơ性读取数据,特别是一些只ȝ数据Q当数据更新时更新数据库内容Q同时更新缓存的数据倹{?br /> <br />   一个例子是Q在一套企业应用系l中Q企业的信息数据Q如企业的名Uͼ在多个业务应用模块中使用Q这时就可以把这些数据缓存v来,需要时直接d~存的企业信息数据?br /> <br />   <strong>七、ȝ</strong><br /> <br />   一般意义上_参与pȝq行的代码都会对性能产生影响Q实际应用中应该L良好的编E规范、编写高质量的代码,当系l性能出现问题Ӟ要找C要媄响性能的瓶颈所在,然后集中_֊优化q些代码Q能辑ֈ事半功倍的效果?br /> <br />   J2EE性能的优化包括很多方面的Q要辑ֈ一个性能优良的系l,除了x代码之外Q还应该Ҏpȝ实际的运行情况,从服务器软硬件环境、集技术、系l构架设计、系l部|环境、数据结构、算法设计等斚wl合考虑? </div> <img src ="http://www.tkk7.com/chenglu/aggbug/263861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-04-04 09:16 <a href="http://www.tkk7.com/chenglu/archive/2009/04/04/let-the-java-good.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java资料http://www.tkk7.com/chenglu/archive/2009/04/03/Java.htmlJava宅男Java宅男Fri, 03 Apr 2009 09:07:00 GMThttp://www.tkk7.com/chenglu/archive/2009/04/03/Java.htmlhttp://www.tkk7.com/chenglu/comments/263788.htmlhttp://www.tkk7.com/chenglu/archive/2009/04/03/Java.html#Feedback1http://www.tkk7.com/chenglu/comments/commentRss/263788.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/263788.html阅读全文

    Java宅男 2009-04-03 17:07 发表评论
    ]]>
    scrim帮助你隐藏Email地址http://www.tkk7.com/chenglu/archive/2009/04/01/scime.htmlJava宅男Java宅男Wed, 01 Apr 2009 09:55:00 GMThttp://www.tkk7.com/chenglu/archive/2009/04/01/scime.htmlhttp://www.tkk7.com/chenglu/comments/263419.htmlhttp://www.tkk7.com/chenglu/archive/2009/04/01/scime.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/263419.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/263419.htmlConvert your email address into a short, cute and safe link you can share on the web, in Twitter, forums, raigslist, anywhere

    Z么要隐藏Email地址呢?

    各种Email嗅探软g可以很方便地你个h的Email地址取过去,随之发送一些代理发等{一些无聊的邮g?/p>

    讉K地址Q?a >http://scr.im

    My EmailQ?a >http://scr.im/cheng



    Java宅男 2009-04-01 17:55 发表评论
    ]]>
    Java File创徏文g?/title><link>http://www.tkk7.com/chenglu/archive/2009/03/30/java-create-Floder.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 30 Mar 2009 01:37:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/03/30/java-create-Floder.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/262816.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/03/30/java-create-Floder.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/262816.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/262816.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;<br /> <img id="Codehighlighter1_40_518_Open_Image" onclick="this.style.display='none'; Codehighlighter1_40_518_Open_Text.style.display='none'; Codehighlighter1_40_518_Closed_Image.style.display='inline'; Codehighlighter1_40_518_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_40_518_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_40_518_Closed_Text.style.display='none'; Codehighlighter1_40_518_Open_Image.style.display='inline'; Codehighlighter1_40_518_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> FileClass</span><span id="Codehighlighter1_40_518_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_40_518_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />    String sPath;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />    String sFilePath;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />    String sContent;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />    <br /> <img id="Codehighlighter1_131_307_Open_Image" onclick="this.style.display='none'; Codehighlighter1_131_307_Open_Text.style.display='none'; Codehighlighter1_131_307_Closed_Image.style.display='inline'; Codehighlighter1_131_307_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_131_307_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_131_307_Closed_Text.style.display='none'; Codehighlighter1_131_307_Open_Image.style.display='inline'; Codehighlighter1_131_307_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">boolean</span><span style="color: #000000"> newFloder(String s)</span><span id="Codehighlighter1_131_307_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_131_307_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        sPath </span><span style="color: #000000">=</span><span style="color: #000000"> s;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        sPath </span><span style="color: #000000">=</span><span style="color: #000000"> sPath.toString();<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        File myFilePath </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> File(sPath);<br /> <img id="Codehighlighter1_237_283_Open_Image" onclick="this.style.display='none'; Codehighlighter1_237_283_Open_Text.style.display='none'; Codehighlighter1_237_283_Closed_Image.style.display='inline'; Codehighlighter1_237_283_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_237_283_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_237_283_Closed_Text.style.display='none'; Codehighlighter1_237_283_Open_Image.style.display='inline'; Codehighlighter1_237_283_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />        </span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #000000">!</span><span style="color: #000000">myFilePath.exists())</span><span id="Codehighlighter1_237_283_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_237_283_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            myFilePath.mkdirs();<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;        <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />        }</span></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />    }</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_349_515_Open_Image" onclick="this.style.display='none'; Codehighlighter1_349_515_Open_Text.style.display='none'; Codehighlighter1_349_515_Closed_Image.style.display='inline'; Codehighlighter1_349_515_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_349_515_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_349_515_Closed_Text.style.display='none'; Codehighlighter1_349_515_Open_Image.style.display='inline'; Codehighlighter1_349_515_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String [] args)</span><span id="Codehighlighter1_349_515_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_349_515_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        FileClass file1 </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> FileClass();<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        String s </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">F:/TEST</span><span style="color: #000000">"</span><span style="color: #000000">;<br /> <img id="Codehighlighter1_436_475_Open_Image" onclick="this.style.display='none'; Codehighlighter1_436_475_Open_Text.style.display='none'; Codehighlighter1_436_475_Closed_Image.style.display='inline'; Codehighlighter1_436_475_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_436_475_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_436_475_Closed_Text.style.display='none'; Codehighlighter1_436_475_Open_Image.style.display='inline'; Codehighlighter1_436_475_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />        </span><span style="color: #0000ff">if</span><span style="color: #000000">(file1.newFloder(s))</span><span id="Codehighlighter1_436_475_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_436_475_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">文g夹创建成功!</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />        }</span></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #0000ff">else</span><span style="color: #000000"> System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">文g创徏p|</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />    }</span></span><span style="color: #000000"><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /><br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span></div> <img src ="http://www.tkk7.com/chenglu/aggbug/262816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-03-30 09:37 <a href="http://www.tkk7.com/chenglu/archive/2009/03/30/java-create-Floder.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>l典随机数算?/title><link>http://www.tkk7.com/chenglu/archive/2009/03/26/radom.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Thu, 26 Mar 2009 09:49:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/03/26/radom.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/262181.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/03/26/radom.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/262181.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/262181.html</trackback:ping><description><![CDATA[ <font color="#999933"> <font color="#000000"> <span style="COLOR: #000000">java.util.Date randseed </span> </font> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> java.util.Date();<br /></span> <span style="COLOR: #000000">java.util.Random r </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> java.util.Random(randseed.getTime());</span> <br />唯一一直变化就是时?/font> <img src ="http://www.tkk7.com/chenglu/aggbug/262181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-03-26 17:49 <a href="http://www.tkk7.com/chenglu/archive/2009/03/26/radom.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP-SmartUploadhttp://www.tkk7.com/chenglu/archive/2009/03/23/jsp-smartupload.htmlJava宅男Java宅男Mon, 23 Mar 2009 03:00:00 GMThttp://www.tkk7.com/chenglu/archive/2009/03/23/jsp-smartupload.htmlhttp://www.tkk7.com/chenglu/comments/261467.htmlhttp://www.tkk7.com/chenglu/archive/2009/03/23/jsp-smartupload.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/261467.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/261467.html下蝲地址Q?br />http://www.tkk7.com/Files/chenglu/jspSmartUpload.rar


    Java宅男 2009-03-23 11:00 发表评论
    ]]>
    优秀E序员的十个习惯(? http://www.tkk7.com/chenglu/archive/2009/03/23/goodprogrammer.htmlJava宅男Java宅男Mon, 23 Mar 2009 02:33:00 GMThttp://www.tkk7.com/chenglu/archive/2009/03/23/goodprogrammer.htmlhttp://www.tkk7.com/chenglu/comments/261462.htmlhttp://www.tkk7.com/chenglu/archive/2009/03/23/goodprogrammer.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/261462.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/261462.html 在这个世界上Q有数百万的人热衷于软g开发,他们有很多名字,如:软g工程师(Software EngineerQ,E序员(ProgrammerQ,~码人(CoderQ,开发h员(DeveloperQ。经q一D|间后Q这些h能够成ؓ一个优U的编码h员,他们非常熟悉如何用计机语言来完成自q工作。但是,如果你要成ؓ一个优U的程序员Q你q可以需要有几g事你需要注意,如果你能让下面十个条目成Z的习惯,那么你才能真正算得上是优UE序员?/font>

    1. 学无止境。就是你有?0q以上的E序员经历,你也得要使劲地学习,因ؓ你在计算个充满一创造力的领域,每天都会有很多很多的C物出现。你需要跟上时代的步伐。你需要去了解新的E序语言Q以及了解正在发展中的程序语aQ以及一些编E框架。还需要去阅读一些业内的新闻QƈC些热门的C֌d与在U的讨论Q这样你才能明白和了解整个Y件开发的势。在国内Q一些著名的C֌例如QCSDNQITPUBQCHINAUINX{等Q在国外Q徏议你l常上一上digg.comȝ看各UBLOG的聚合?/font>

    2. 掌握多种语言。程序语aL有其最适合的领域。当你面寚w要解决的问题Ӟ你需要找C个最适合的语a来解册些问题。比如,如果你需要性能Q可能C/C++是首选,如果你需要跨q_Q可能Java是首选,如果你要写一个Web上的开发程序,那么 PHPQASPQAjaxQJSP可能会是你的选择Q如果你要处理一些文本ƈ和别的应用交互,可能Perl, Python会是最好的。所以,׃些时间去探烦一下其它你q熟悉的E序语言Q能让你的眼界变宽,因ؓ你被武装得更好,你思考问题也更为全面,q对于自己和目都会有好的帮助?/font>

    3. 理性面对不同的操作pȝ或技?/strong>。程序员们L有自己心目中无可比拟的技术和操作pȝQ有的h喜欢UbuntuQ有的h喜欢DebianQ还有的人喜ƢWindowsQ以及FreeBSDQMacOSX或Solaris{等。看看我的BLOG( http://blog.csdn.net/haoel )中的那篇?/font> 其实Unix很简?/font> 》后的回复你q道程序员们在l护赯q忠爱时的那䆾执着了。只有一部分优秀的程序员明白不同操作pȝ的优势和长处和短处,q样Q在pȝ选型的时候,才能做到真正的客观和公正Q而不会让情A影响到自己。同P语言也是一P有太多的E序员L喜欢U缠于语a的对比,如:Java和Perl。哪个刚刚出道的E序员没有争论去cM的话题呢Q比如VC++和Delphi{等。争些东西只能表明自q肤浅和Q燥。优U的程序ƈ不会执着于这些,而是能够理性的分析和理心地面对Q从而才能客观地做出正确的选择?/font>

    4. 别把自己框在单一的开发环境中?/strong> 再一ơ,正如上面所qͼ每个E序员都有自己忠q工具和技术,有的喜欢老的Q比如我喜ƢVi~辑E序Q,而有的喜Ƣ新的比如gedit或是Emacs {。有的喜Ƣ用像VC++一L调试器,而我更喜ƢGDB命o行方面的调式器。等{等{。程序员在用什么样的工具上的争吗Q到处都是啊。用什么样的工h来无所谓,只要你能更好更快地达C的目的。但是有一Ҏ优秀E序员都应该了解的——那是应该d试一下别的工作环境。没有比较,你永q不知道谁好谁不好,你也永远不知道你所不知道的?/font>

    5. 使用版本理工具理你的代码?/strong>千万不要告诉我你不知道源码的版本理Q如果你的团队开发的源代码ƈ没有版本理pȝQ那么我要告诉你Q你的Y件开发还处于矛_时代。赶快用一个版式本理工具吧。CVS 是一个看上去qxE无奇的版本工P但它是被使用最q的版本理pȝQSubversion 是CVS的一个升U版Q其正在开始接CVS的领地。Git 又是一个不同的版本理工具。还有Visual SourceSafe{。用什么样的版本管理工具依赖于你的团队的大和地理分布Q你也许正在使用最有效率或最没有效率的工h理你的源代码。但一个优U的程序员L会用一ƾ源码版本管理工h理自己的代码。如果你要我推荐一个,我推荐你使用开源的Subversion?/font>

    6. 是一个优U的团队成员?/strong> 除非你喜Ƣ独奏,除非你是孤胆英雄。但我想告诉你,今天Q可能没有一个成熟的软g是你一个h能做的到的,你可能是你团队中最牛的大拿Q但qƈ不意味着你就是好的团队成员。你的能力只有放C个团队中才能施展开来。你在和你的团队成员交流中有CD吗?你是否经常和他们沟通,q且大家都喜Ƣ和你在一赯论问题?想一想一个球队吧,你是q个队中好的成员吗?当别人看C在场上的跑动Q当别h看到你的传球和接球和抢断Q能受到鼓舞吗?

    7. 把你的工作变成文档?/strong> q一条目当然包括了在代码中写注释Q但那还仅仅不够Q你q需要做得更多。有良好的注释风格的代码是一个文档的基础Q他能够让你和你的团队容易的明白你的意图和想法。写下文档,q不仅仅是怕我们忘了当时的xQ而且q是一U团队的ȝ交流的方法,更是一U知识传递的Ҏ。记录下你所知道的一切会是一个好的习惯。因为,我相信你不希望别人L在你最忙的时候来打断你问问题Q或是你在休假的时候接到公司的电话来询问你问题。而你自己如果老是守着自己的东西,其结果只可能是让你自己长旉地深陷在q块东西内,而你更本不可以d更多的事情。包括向上的晋升。你可能以ؓ“教会徒弟能饿死师父”,但我告诉你,你的保守会让你失L多更好的东西Q请你相信我Q我l不是在q里思h听闻?/font>

    8. 注意备䆾和安全?/strong> 可能你觉得这是一个“废话”,你已明白了备份的重要性。但是,我还是要在这里提出,丢失东西是我们h生中的一部䆾Q你L会丢东西Q这点你永远无法避免。比如:你的W记本电脑被人偷了,你的盘损坏了,你的电脑中病毒了Q你的系l被人入侵了Q甚x个大D烧了Q等{,{等。所以,做好备䆾工作是非帔R帔R要的事情Q硬盘是不可信的Q所以定期的d光盘或是带可能会是一个好的方法,|络也是不可信的Q所以小心病毒和黑客Q不但用Y件方面的安全{略Q你更需要一个健全的理制度。此外,量的让你的数据攑֜不同的地方,q做好定期(每日Q每周,每月Q的备䆾{略?/font>

    9. 设计要够灵zR?/strong> 可能你的需求只会要求你实现一个死的东西,但是Q你作ؓ一个优U的程序,你应该随时在思考这个死的东西是否可以有灉|的一面,比如把一些参数变成可以配|的Q把一些公用的东西形成你的函数库以便以后重用,是否提供插g斚w的功能?你的模块是否要以像积木一样随意组合?如果要有修改的话Q你的设计是否能够马上应付?当然Q灵zȝ设计可能q不是要你去重新发明轮子Q你应该可能是使用标准化的东西。所谓灵话的设计是要让让考虑更多需求之外的东西Q把需求中q一cȝ问题都考虑刎ͼ而不是只处理需求中所说的那一特定的东ѝ比如说Q需要需要的屏幕分L率是800×600Q那么你的设计能否灵zM其他的分辨率Q程序设计L需要我们去处理不同的环境,以及未来的趋ѝ我们需要用动态的眼光L考问题,而不是刻舟求剑。也许有一天,你今天写的程序就要移植到别的环境中去Q那个时候你p真正明白什么是灉|的设计了?/font>

    10. 不要搬v矛_砸自q脚?/strong>E序员L有一U不好的习惯Q那是L惌快地完成自己手上的工作。但情况却往往事已愿违。越是想做得快,p是容易出问题Q越是想做得快,p是容易遗漏问题,最l,E序改过来改q去Q按下葫芦v了瓢Q最后花费的旉和精力反而更多。欲速而不达。优UE序员的习惯是前面多׃些时间多作一些调查,试验一下不|的解决ҎQ如果时间允许,一个好的习惯是Q每4个小时的~程Q需要一个小时的休息Q然后又?个小时的~码。当Ӟq因异Q但其目的就是让你时常回头看看,让你想一惌样三个问题:1Q是否这么做是对的?2Q是否这么做考虑C所有的情况Q?Q是否有更好的方法?惛_了再_时常回头看看走过的\Q时常ȝ一下过MQ会对你有很大的帮助?/font>

    以上是十条优UE序员的习惯或行范,希望其可以对你有所帮助?/font>

    本文来源于网上phil的BLOGQ但我在写作q程中用了自己的语a和方法重新描qC一下这十条Q所以,我希望你在{载的时候能够注明作者和出处以表C对我的重。谢谢!



    Java宅男 2009-03-23 10:33 发表评论
    ]]>
    Mouse Can't Click——鼠标点不住代码http://www.tkk7.com/chenglu/archive/2009/03/22/mousecantclick.htmlJava宅男Java宅男Sun, 22 Mar 2009 09:30:00 GMThttp://www.tkk7.com/chenglu/archive/2009/03/22/mousecantclick.htmlhttp://www.tkk7.com/chenglu/comments/261326.htmlhttp://www.tkk7.com/chenglu/archive/2009/03/22/mousecantclick.html#Feedback0http://www.tkk7.com/chenglu/comments/commentRss/261326.htmlhttp://www.tkk7.com/chenglu/services/trackbacks/261326.html阅读全文

    Java宅男 2009-03-22 17:30 发表评论
    ]]>
    南阳理工学院软g学院Java开发团?/title><link>http://www.tkk7.com/chenglu/archive/2009/03/20/joinus.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Fri, 20 Mar 2009 06:49:00 GMT</pubDate><guid>http://www.tkk7.com/chenglu/archive/2009/03/20/joinus.html</guid><wfw:comment>http://www.tkk7.com/chenglu/comments/261040.html</wfw:comment><comments>http://www.tkk7.com/chenglu/archive/2009/03/20/joinus.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.tkk7.com/chenglu/comments/commentRss/261040.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/chenglu/services/trackbacks/261040.html</trackback:ping><description><![CDATA[ <p> <font size="2"> <strong> <font color="#ff0000">必须首先是BlogJava的注册用?br /><font style="BACKGROUND-COLOR: #7fffd4">登陆之后</font></font>回复本脓Q?br />1、是否是南阳理工学院软g学院学生<br />2、if Q?=trueQ注明自q班及姓?如:08届Java2班XXX<br />3、自己在blogjava的̎?br />4、联pL?br />5、擅长方?br />6、兴方?/strong> </font> </p> <img src ="http://www.tkk7.com/chenglu/aggbug/261040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/chenglu/" target="_blank">Java宅男</a> 2009-03-20 14:49 <a href="http://www.tkk7.com/chenglu/archive/2009/03/20/joinus.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://19933k.com" target="_blank">̼aƬվ</a>| <a href="http://lhtjdj.com" target="_blank">þùƷȰ׽</a>| <a href="http://woniuzn.com" target="_blank">պѹۿ</a>| <a href="http://wuaiav.com" target="_blank">޹Ʒ˾þþ</a>| <a href="http://0515bh.com" target="_blank">ºձѹۿ</a>| <a href="http://abbobo.com" target="_blank">ŮƵվ</a>| <a href="http://avxyz.com" target="_blank">ҹɫһѲƵ </a>| <a href="http://alodaba.com" target="_blank">þòþüƵ7</a>| <a href="http://mironpress.com" target="_blank">Ļþи</a>| <a href="http://nsmtv.com" target="_blank">CAOPORMƷƵ</a>| <a href="http://hkcp168.com" target="_blank">Ļ߾ƷƵѹۿ</a>| <a href="http://138site.com" target="_blank">ɾƷһ</a>| <a href="http://41xjj.com" target="_blank">þþžAVѾƷ</a>| <a href="http://znboxcdn107.com" target="_blank">ɫWWWַ</a>| <a href="http://ynxxrh.com" target="_blank">һƵ</a>| <a href="http://haichuanwangluo.com" target="_blank">AרAV</a>| <a href="http://jinluffcl.com" target="_blank">vƬ߹ۿ</a>| <a href="http://28896543.com" target="_blank">ҹ㽶Ƭ</a>| <a href="http://okgou58.com" target="_blank">߹ۿavվ</a>| <a href="http://nn227.com" target="_blank">ĻѲ</a>| <a href="http://pohezi.com" target="_blank">רȷӰ</a>| <a href="http://5tww.com" target="_blank">91߾Ʒ</a>| <a href="http://1314c.com" target="_blank">AV鶹Ʒ</a>| <a href="http://33sse.com" target="_blank">պƷѵӰ</a>| <a href="http://xzzkf.com" target="_blank">У԰޴ɫС˵ϼ</a>| <a href="http://hkcp168.com" target="_blank">þþƷ޾Ʒ</a>| <a href="http://vcnxa.com" target="_blank">һѹۿ</a>| <a href="http://av520av.com" target="_blank">ɫַѴȫ</a>| <a href="http://591se591se.com" target="_blank">Ļ</a>| <a href="http://www-66409b.com" target="_blank">99Ƶ</a>| <a href="http://hnmeiankj.com" target="_blank">avѵӰ</a>| <a href="http://mmstom.com" target="_blank">ŮӸ߳ϱ׽</a>| <a href="http://2023852.com" target="_blank">ŷŮƵ</a>| <a href="http://avqq222.com" target="_blank">ŮƵӴȫƵѵ</a>| <a href="http://591se591se.com" target="_blank">ҹ޾Ʒվ</a>| <a href="http://zhaosaohuo.com" target="_blank">ܳƵѹۿ</a>| <a href="http://13813855.com" target="_blank">޻ɫƵ</a>| <a href="http://ylptt.com" target="_blank">ɫַѴȫ</a>| <a href="http://www-840012.com" target="_blank">ƷAһ </a>| <a href="http://020iws.com" target="_blank">˳Ƶ69</a>| <a href="http://snbbearing.com" target="_blank">ŷ޹˾Ʒ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>