java應(yīng)用 什么是Java類庫?
什么是Java類庫?這些類庫是用Java編寫的,但是它的許多功能都是通過直接調(diào)用操作系統(tǒng)API來完成的。Java虛擬機(jī)是用C或C編寫的。Java集合類庫的頂層里的Collection,List,Set
什么是Java類庫?
這些類庫是用Java編寫的,但是它的許多功能都是通過直接調(diào)用操作系統(tǒng)API來完成的。Java虛擬機(jī)是用C或C編寫的。
Java集合類庫的頂層里的Collection,List,Set是抽象類的話是否更“正確”一些?
不正確。Java是單繼承。如果頂層是抽象類,對以后的代碼擴(kuò)展非常不利。java接口是多實(shí)現(xiàn)的,java官方設(shè)計(jì)為集合和集合,列表也是接口設(shè)計(jì),符合java接口實(shí)現(xiàn)的特點(diǎn)。如果它們都被設(shè)計(jì)成抽象類,我們將無法在實(shí)際開發(fā)中實(shí)現(xiàn)我們自己的類。具體結(jié)構(gòu)如下:
collection interface的接口對象集合(單列集合)
ζ-list interface:元素按條目順序保存,可以重復(fù)
│--ζLinkedList接口實(shí)現(xiàn)類,鏈表,插入刪除,不同步,行不安全
│--ζArrayList接口實(shí)現(xiàn)類,數(shù)組,隨機(jī)訪問,無同步,線程不安全!---向量接口實(shí)現(xiàn)類數(shù)組,同步,線程安全!-------stack是vector類的實(shí)現(xiàn)類
----set接口:只接收一次,不能重復(fù),做內(nèi)部排序
ζ-----HashSet使用哈希表(數(shù)組)存儲元素
TreeSet的底層實(shí)現(xiàn)是二叉樹,元素按順序排列