時間:2018-08-12 00:00:00 來源:信盈達 作者:信盈達
1. 一個在 32 位 Java 運行時中使用 1GB Java 堆的 Java 應用程序在遷移到 64 位 Java 運行時之后,通常需要使用 1.7GB 的 Java 堆。
2. Hash 集合的訪問性能比任何 List 的性能都要高,但每條目的成本也要更高。由于訪問性能方面的原因,如果您正在創建大集合(例如,用于實現緩存),那么最好使用基于 Hash 的集合,而不必考慮額外的開銷。
3. 對于并不那么注重訪問性能的較小集合而言,List 則是合理的選擇。ArrayList 和 LinkedList 集合的性能大體相同,但其內存占用完全不同:ArrayList 的每條目大小要比 LinkedList 小得多,但它不是準確設置大小的。List 要使用的正確實現是 ArrayList 還是 LinkedList 取決于 List 長度的可預測性。如果長度未知,那么正確的選擇可能是 LinkedList,因為集合包含的空白空間更少。如果大小已知或可預知或比較小,那么 ArrayList 的內存開銷會更低一些。
3. 選擇正確的集合類型使你能夠在集合性能與內存占用之間達到合理的平衡。除此之外,你可以通過正確調整集合大小來最大化填充率、最小化未得到利用的空間,從而最大限度地減少內存占用。
4. 充分利用封裝(提供接口類來控制訪問數據)和委托(helper 對象來實施任務)兩種理念。
5. 延遲分配 Hashtable:如果 Hashtable 為空是經常發生的普遍現象,那么僅在存在需要存儲的數據時分配 Hashtable 應該是一種合理的做法。將 Hashtable 分配為準確的大小:雖然會有默認大小,但建議使用更為準確的初始大小。
6. EditText 在 setText 時不要忘記是否需要 setSelection。在大多數情況下是需要設置的。
7. XML 兩種情況要注意:1 屬性名字時候有重復;2 注意文本是否包含非法字符,注意使用 CDATA 包裹。
8. 當邏輯沒有明顯問題時考慮對象屬性、函數參數、網絡傳輸參數是否全部了解,是否設置正確。
9. 當出現編譯或者運行時錯誤,別人那沒問題時,考慮你的編譯環境和環境版本是否有問題。
10. 由于 String 類的 immutable 性質,當 String 變量需要經常變換其值時,應該考慮使用 StringBuilder 提升性能,多線程使用 StringBuffer 操作 string 提高程序效率。
11. java 棧的優勢是比堆速度快,可共享,主要存放臨時變量、參數等,堆的優勢是可動態分配內存大小。
12. 只要是用 new ()來新建對象的,都會在堆中創建,而且其數據是單獨存值的,即使與棧中的數據(值)相同,也不會與棧中的數據共享。
13. 基本數據類型定義的變量稱自動變量,存的是‘字面值’,存在于棧中,可共享(存在即不新建)。
14. 多個 RandomAccessFile 對象指向同一個文件,可使用多個線程一起寫入無需再自己加鎖,經試驗結論:三個線程分別寫入 100 萬次數據,使用鎖約 12 秒,不使用約 8.5 秒。100 個線程分別寫入 1 萬次數據使用鎖耗時約 4.2 秒,不使用鎖耗時約 3 秒。
15. XmlPullParser 解析慎用 nextText ()方法,xml 比較復雜,含有空標簽、重復名字標簽時容易出現異常問題;TEXT 中使用 getText ()方法代替 START_TAG 中使用 nextText ()方法;START_TAG,TEXT,END_TAG 三個事件配合使用。注意每個 xml 節點之間(不管是開始節點還是結束節點)都會出現 TEXT 事件。
16. 改變邏輯的時候考慮全部用到這項功能的地方,分散的地方多了,容易大意。
17. 當系統原生組件出現問題時,查看錯誤棧信息,自己寫一個該組件的子類,并在合適的地方將出錯方法復寫一下,加上 try catch 保證不崩潰掉。不要擾亂了該系統控件的正常邏輯。
18. 輸入控件注意對空格、換行等符號的控制;輸入框里內容注意和左右控件的空間,防止誤點擊。
19. 注意函數參數里的++或者–操作。是++c 還是 c++,區別很大。
20. 各種地方、永遠的不要小看 null 指針問題,甚至有些場合寧可錯殺(try catch),不可放過。
信盈達2008年在深圳特區南山高新科技園成立。自成立至今近九年來專注為企業和個人提供高端方案設計、高端嵌入式/Android培訓等服務。公司下設信盈達實訓學院、信盈達研發中心、信盈達教學儀器三大業務板塊。九年來公司堅持"技術領先、服務領先",以雄厚的實力和專業的品質成為國內唯一有實力從產品最底層研發到系統層開發的嵌入式實訓、產品解決方案提供商。為中國IT行業提供最具價值的職業教育服務。專業培訓嵌入式、物聯網、人工智能、Java、單片機等課程,想了解更多信息點擊立馬咨詢
免費領取試聽卡
申請已經提交
老師會馬上給您安排試聽課程!
申請出錯了
您可以加老師QQ:914865590報名咨詢!