<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 6  文章 - 0  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    文章分類

    好友

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    1. 避免字符串相加
       這是個老生常談的問題,但是在寫servlet的時候,很多人在輸出html時,
    這樣寫
    String a = "<html> ";
    String b = "</html>";
    String c = a + b;
    應該使用StringBuffer,
    String a = "<html> ";
    String b = "</html>";
    StringBuffer sb = new StringBuffer(a);
    sb.append(b);
    String c = sb.toString();
    最好使用StringBuffer的帶參數構造來代替默認的構造函數,因為StringBuffer的append()方法返回
    一個StringBuffer實例,最好的寫法是這樣:
    StringBuffer sb = new StringBuffer(256);
    StringBuffer sb = new StringBuffer();
    sb.append("<html> ").append("</html>");
    2.不要使用StringTokenizer
      例如解析字符串
      import java.util.StringTokenizer;
    public class TestStringTokenizer
    {
    public static void main(String[] args)
    {
    String s = "a,b,c,d";
    StringTokenizer st = new StringTokenizer(s, ",");
    while (st.hasMoreTokens())
    {
    String token = st.nextToken();
    System.out.println(token);
    }
    }
    }
    可以使用String.indexOf()完成相同的功能
    public class TestIndexOf
    {
    public static void main(String[] args)
    {
    String s = "a,b,c,d";
    int begin = 0;
    int end = s.indexOf(",");
    while (true)
    {
    String token = null;
    if (end == -1)
    {
    token = s.substring(begin);
    }
    else
    {
    token = s.substring(begin, end);
    }
    System.out.println(token);
    // End if there are no more delimiters
    if (end == -1) break;
    begin = end + 1;
    end = s.indexOf(",", begin);
    }
    }
    }
    3.一般不要log輸出
       一般不要使用System.out.println()作為日志輸出,最好使用log4j,更易于打開和關閉輸出
         if(logger.isDebugEnabled()){
                logger.debug("logging method handleRequestInternal()....");
            }
    4.避免不必要同步
       servlet容器是個多線程的系統,java的關鍵字synchronized.避免某些情況的程序死鎖,但是性能確實大大的降低了。
    除非特別必要,否則不要使用synchronized。
    5.盡量使用PreparedStatement
    多次使用相同的查詢語句,PreparedStatement的效率很高,而且避免了sql注入。
    6.盡量使用連接池
    使用連接池,可以減少建立連接的時間,而且可以減輕數據庫的連接壓力。
    7.大量的使用cache
    對于經常查詢相同數據的網站程序,使用cache是優化的不二法門,oscache是個廉價的方案。
    8.優化servlet容器
      關閉容器的logging,加大他的File read cache size,加大容器的線程數,禁止servlet的重新加載。
    9.優化jvm,加大heap的初始化字節數,降低虛擬機的垃圾回收頻率,
    posted on 2006-03-02 14:02 badboy 閱讀(339) 評論(0)  編輯  收藏 所屬分類: Java基礎
    主站蜘蛛池模板: 亚洲精品免费在线观看| 在线观看国产情趣免费视频| 亚洲国产精品成人久久久| 成年丰满熟妇午夜免费视频| 一本久久免费视频| 亚洲欧洲精品国产区| 又大又硬又爽免费视频| 中文字幕免费观看| 日本激情猛烈在线看免费观看 | 日韩一区二区三区免费体验| 老司机福利在线免费观看| 亚洲综合精品香蕉久久网97| 国产美女被遭强高潮免费网站| 日本人成在线视频免费播放| ww亚洲ww在线观看国产| 亚洲欧洲精品无码AV| 啦啦啦www免费视频| 久久免费观看国产99精品| 国产成人亚洲精品蜜芽影院| 久久夜色精品国产噜噜噜亚洲AV | 美女视频黄a视频全免费| 好吊色永久免费视频大全 | 特级无码毛片免费视频 | 四虎影视在线影院在线观看免费视频 | 最近最好的中文字幕2019免费 | 久久久久亚洲精品无码系列| 国产乱子伦精品免费无码专区 | 国产成人3p视频免费观看| 久久99国产综合精品免费| 国产禁女女网站免费看| 亚洲av日韩av欧v在线天堂| 国产精品亚洲小说专区| 中文字幕亚洲日韩无线码| 日韩成人免费视频| 亚洲一区二区三区在线观看网站| 永久免费看bbb| 国产日韩AV免费无码一区二区| 亚洲av无码一区二区三区观看| 狼友av永久网站免费观看| 久久久精品国产亚洲成人满18免费网站| 久久丫精品国产亚洲av不卡 |