Java組件介紹


1.String

string對象的不變性、被final關鍵字修飾。

使用charat方法替代startwith/endwith方法(提高性能)

使用buffer(方法同步,性能較差)和builder(同步,性能較好)來替換string

equals(不可以比較基本數據類型,重寫方法是為了比較對象的值是否相同,否則則比較對象的引用地址)

==(基本類型比較值,引用類型比較地址)

equals方法為true的兩個對象一定相等,hashcode方法相同的兩個對象不一定相同

2.list

* 1.ArrayList(數組實現、線程不同步.初始大小為10,每次擴容為1.5倍)
* 2.Linkedlist(循環雙向鏈表:header+link1+link2+header)
* 3.vector(數組實現、線程同步)

 3.map

* 1.hashtable (線程同步、不允許key或value使用null值)
* 2.hashmap (線程不同步、數組實現、初始大小16、負載因子0.75、數據存放無序)
* 3.linkedhashmap(數據存放有序)
* 4.treemap(實現sortedMap接口對元素進行排序、基於紅黑樹實現)

4.set(元素不重復、基於對map的封裝)

* 1.hashset
* 2.linkedHashSet
* 3.TreeSet

集合優化
* 1.for循環中重復的代碼可以提取到外部。例如list.size()
* 2.省略相同操作
* 3.調用元素避免調用方法
 RandomAccess接口:實現該接口的對象即支持快速隨機訪問的對象
* (基於數組的list實現該接口,可直接使用get方法獲取元素、性能較好
* 基於鏈表的未實現,需通過迭代器進行元素迭代、性能較差)

5. Java NIO:(寫操作類似於向水瓶中蓄水,讀操作類似於從水瓶中取水。渠道等同於吸管的作用)

*1.打開渠道,獲取buffer

* 2.讀取文件,獲取channel
* 3.給buffer分配大小
* 4.channel數據讀取到buffer
* 5.關閉channel
*scatter(分散)/gather(聚集)— 一個channel對應多個gather:傳輸數據分散處理。以數組形式存儲
* selecter:一個線程管理多個channel

tips:

* 1.try/catch移到循環體之外
* 2.位運算替代乘除法
* 3.提取重復表達式
* 4.對於重量級對象,使用clone()替代new
* 5.使用靜態方法替代實例方法

Java  引用

*引入引用的目的:人為控制對象生命周期、方便JVM進行回收
*強(所指對象不會被系統回收)》軟(基於內存進行存活、網頁、圖片緩存)》弱(只要發現就回收)》虛(跟蹤垃圾回收過程)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM