最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

讓Java代碼更高效

 更新時(shí)間:2015年09月22日 15:02:21   投稿:lijiao  
這篇文章主要介紹了如何讓你的Java代碼更高效,讓Java跑得更快,感興趣的小伙伴們可以參考一下

本文簡(jiǎn)單介紹一下在寫代碼過程中用到的一些讓JAVA代碼更高效的技巧。

1,將一些系統(tǒng)資源放在池中,如數(shù)據(jù)庫連接,線程等.在standalone的應(yīng)用中,數(shù)據(jù)庫連接池可以使用一些開源的連接池實(shí)現(xiàn),如C3P0,proxool和DBCP等,在運(yùn)行在容器中的應(yīng)用這可以使用服務(wù)器提供的DataSource.線程池可以使用JDK本身就提供的java.util.concurrent.ExecutorService.

import java.util.concurrent.Executors; 
import java.util.concurrent.ExecutorService; 
public class JavaThreadPool { 
  public static void main(String[] args) { 
  ExecutorService pool = Executors.newFixedThreadPool(2); 
   
  Thread t1 = new MyThread(); 
  Thread t2 = new MyThread(); 
  Thread t3 = new MyThread(); 
  Thread t4 = new MyThread(); 
  Thread t5 = new MyThread(); 
 
  pool.execute(t1); 
  pool.execute(t2); 
  pool.execute(t3); 
  pool.execute(t4); 
 
  pool.shutdown(); 
  } 
} 
 
class MyThread extends Thread { 
  public void run() { 
  System.out.println(Thread.currentThread().getName() + "running...."); 
  } 
} 

2,減少網(wǎng)絡(luò)開銷,在和數(shù)據(jù)庫或者遠(yuǎn)程服務(wù)交互的時(shí)候,盡量將多次調(diào)用合并到一次調(diào)用中。

3,將經(jīng)常訪問的外部資源cache到內(nèi)存中,簡(jiǎn)單的可以使用static的hashmap在應(yīng)用啟動(dòng)的時(shí)候加載,也可以使用一些開源的cache框架,如OSCache和Ehcache等.和資源的同步可以考慮定期輪詢和外部資源更新時(shí)候主動(dòng)通知.或者在自己寫的代碼中留出接口(命令方式或者界面方式)共手動(dòng)同步。

4,優(yōu)化IO操作,JAVA操作文件的時(shí)候分InputStream and OutputStream,Reader and Writer兩類,stream的方式要快,后者主要是為了操作字符而用的,在字符僅僅是ASCII的時(shí)候可以用stream的方式提高效率.JDK1.4之后的nio比io的效率更好。

OutputStream out = new BufferedOutputStream(new FileOutputStream(new File("d:/temp/test.txt")));       
out.write("abcde".getBytes());    
out.flush(); 
out.close(); 

利用BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter減少對(duì)磁盤的直接訪問次數(shù)。

FileReader fr = new FileReader(f); 
BufferedReader br = new BufferedReader(fr); 
while (br.readLine() != null) count++; 

5不要頻繁的new對(duì)象,對(duì)于在整個(gè)應(yīng)用中只需要存在一個(gè)實(shí)例的類使用單例模式.對(duì)于String的連接操作,使用StringBuffer或者StringBuilder.對(duì)于utility類型的類通過靜態(tài)方法來訪問。

6,避免使用錯(cuò)誤的方式,如Exception可以控制方法推出,但是Exception要保留stacktrace消耗性能,除非必要不要使用instanceof做條件判斷,盡量使用比的條件判斷方式.使用JAVA中效率高的類,比如ArrayList比Vector性能好。

7,對(duì)性能的考慮要在系統(tǒng)分析和設(shè)計(jì)之初就要考慮。

總之,一個(gè)系統(tǒng)運(yùn)行時(shí)的性能,無非是從CPU,Memory和IO這三個(gè)主要方面來考慮優(yōu)化.減少不必要的CPU消耗,減少不必要的IO操作,增加Memory利用效率。

相關(guān)文章

  • Java垃圾回收之標(biāo)記壓縮算法詳解

    Java垃圾回收之標(biāo)記壓縮算法詳解

    今天小編就為大家分享一篇關(guān)于Java垃圾回收之標(biāo)記壓縮算法詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • SpringMVC中的異常處理機(jī)制詳解

    SpringMVC中的異常處理機(jī)制詳解

    SpringMVC提供了基于xml和基于注解的異常處理機(jī)制,一般情況下兩者都要進(jìn)行配置,xml異常處理機(jī)制主要用于處理xml方式產(chǎn)生的異常,注解異常處理機(jī)制主要用于處理基于注解方式產(chǎn)生的異常,這篇文章主要介紹了SpringMVC中的異常處理機(jī)制,需要的朋友可以參考下
    2024-05-05
  • 詳解spring security之httpSecurity使用示例

    詳解spring security之httpSecurity使用示例

    這篇文章主要介紹了詳解spring security之httpSecurity使用示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • MyBatis中的JdbcType映射使用介紹

    MyBatis中的JdbcType映射使用介紹

    這篇文章主要介紹了MyBatis中的JdbcType映射使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè)

    Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • springmvc接收json串,轉(zhuǎn)換為實(shí)體類List方法

    springmvc接收json串,轉(zhuǎn)換為實(shí)體類List方法

    今天小編就為大家分享一篇springmvc接收json串,轉(zhuǎn)換為實(shí)體類List方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • springboot?ConfigurationProperties的綁定源碼示例解析

    springboot?ConfigurationProperties的綁定源碼示例解析

    這篇文章主要為大家介紹了springboot?ConfigurationProperties的綁定源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Java異常處理try?catch的基本用法

    Java異常處理try?catch的基本用法

    try就像一個(gè)網(wǎng),把try{}里面的代碼所拋出的異常都網(wǎng)住,然后把異常交給catch{}里面的代碼去處理。最后執(zhí)行finally之中的代碼。無論try中代碼有沒有異常,也無論catch是否將異常捕獲到,finally中的代碼都一定會(huì)被執(zhí)行。
    2021-12-12
  • java調(diào)用回調(diào)機(jī)制詳解

    java調(diào)用回調(diào)機(jī)制詳解

    這篇文章主要介紹了java調(diào)用回調(diào)機(jī)制詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java 8 中 Map 騷操作之 merge() 的使用方法

    Java 8 中 Map 騷操作之 merge() 的使用方法

    本文簡(jiǎn)單介紹了一下Map.merge()的方法,除此之外,Java 8 中的HashMap實(shí)現(xiàn)方法使用了TreeNode和 紅黑樹,原理很相似,今天通過本文給大家介紹Java 8 中 Map 騷操作之 merge() 的用法 ,需要的朋友參考下吧
    2021-07-07

最新評(píng)論

潞西市| 鄱阳县| 东乡族自治县| 凤山市| 昆明市| 长兴县| 蓝田县| 新郑市| 马尔康县| 洛川县| 沙雅县| 永平县| 习水县| 仁寿县| 尚义县| 海丰县| 金门县| 荔浦县| 焦作市| 安泽县| 吉首市| 临澧县| 淮安市| 合阳县| 葵青区| 林州市| 关岭| 淮北市| 南丰县| 兴国县| 富裕县| 南皮县| 靖安县| 英吉沙县| 黄浦区| 新和县| 永昌县| 峨山| 收藏| 康乐县| 吴桥县|