处理问题的方式
1.?測試代碼的時候,如果某段代碼效率特別差,可以通過注釋部分代碼的方式以確定問題代碼的位置。測試的時候一定保證只有一部分代碼在執行,排除其他干擾。
2. 日志記錄:
? ? 1). 要有詳細的日志記錄,方便出錯時查找。
? ? 2). 在開發的時候可以將一些日志級別設為DEBUG,代碼中增加一些debug級別的日志記錄,方便調試。
? ? ? ? ?真正發布項目的時候再將日志級別改為info,那么debug級別的日志就不會記錄下來。
? ? 3). 為了防止代碼中出異常,而導致相關日志沒有記錄。我們可以考慮將一些操作放到finally中。例如,在之前的代碼中增加一個標識符,如:flag = false ,?
? ? ? ? ?若出現異常,在異常捕獲中將狀態改為true ,最后在finally中統一處理。
3.?如果需要記錄某些日志型內容到數據庫或文件中,一個一個記錄比較麻煩。可以考慮,批量記錄。一般情況下:一個主線程執行任務,一個輔助線程定時來記錄數據。
? ? 這里要考慮數據在內存中的保留和同步問題,可以借助concurrent?包下面的一些類,如:BlockQueue類型的隊列,來臨時存儲數據,供輔助線程使用。
4.?程序中如果使用線程,最好給線程一個名稱,以方便監控。使用線程自己的命名可能會導致命名重復。
5.?為防止數據在傳輸過程中丟失,可以將考慮將數據放到一個中間件中,如:數據庫,ActiveMQ
6. 緩存中數據的處理:為了提高代碼效率,我們可以考慮將一部分數據庫內容加載到內存中。但數據庫會有插入、更新操作,為了防止這部分數據丟失。有兩種方式處理:
? ? 1). 當我們去緩存中查詢不到想要的數據時,再去數據庫中查詢,看是否有想要的記錄,如果有,獲取并將數據放到緩存中。
? ? 2). 定時任務更新緩存。
? ? 上面兩種解決方式中的問題,第一種方式,如果數據庫中的數據被更新了,很可能導致緩存和數據庫中數據不統一。第二種方式的時效性可能不太好。
7.?如果某一任務要頻繁的連接數據庫,可以考慮使用單例模式。
8. 獲取文件路徑的兩種常用方式:
? ? 1). System.getProperty("user.dir") ? ? ? ? ?// 注意Tomcat下獲取的是tomcat中的bin目錄,直接使用jar文件的項目中可以考慮。
? ? 2). Test.class.getResource("/").getPath() ? // 獲取Tomcat中部署項目的classes目錄
9.?一個要一直運行的循環或程序中,要注意異常的處理。保證即使出現異常,也不要讓程序停下來。
?
轉載于:https://www.cnblogs.com/Jtianlin/p/4264024.html
總結
- 上一篇: Java SpringMvc+hiber
- 下一篇: 第十二周学习进度表