抽象類和接口的區(qū)別壁公?
1感论、抽象類要被子類繼承绅项,接口要被類實現(xiàn)。
2比肄、接口只能做方法聲明快耿,抽象類中可以作方法聲明,也可以做方法實現(xiàn)芳绩。
3掀亥、接口里定義的變量只能是公共的靜態(tài)的常量,抽象類中的變量是普通變量妥色。
4搪花、接口是設計的結果,抽象類是重構的結果嘹害。
5撮竿、抽象類和接口都是用來抽象具體對象的,但是接口的抽象級別最高笔呀。
6幢踏、抽象類可以有具體的方法和屬性,接口只能有抽象方法和不可變常量许师。
7房蝉、抽象類主要用來抽象類別,接口主要用來抽象功能微渠。
java中都有哪些數(shù)據(jù)結構?
①數(shù)組 (Array)
在程序設計中搭幻,為了bai處理方便,du 把具有相同類型的若干變量按zhi有序的形式組織起來逞盆。這些按序排列的同類數(shù)
據(jù)元素的集合稱為數(shù)組檀蹋。在C語言中, 數(shù)組屬于構造數(shù)據(jù)類型纳击。一個數(shù)組可以分解為多個數(shù)組元素续扔,這些數(shù)組
元素可以是基本數(shù)據(jù)類型或是構造類型。因此按數(shù)組元素的類型不同焕数,數(shù)組又可分為數(shù)值數(shù)組纱昧、字符數(shù)組、指
針數(shù)組堡赔、結構數(shù)組等各種類別识脆。
②棧 (Stack)
棧是只能在某一端插入和刪除的特殊線性表。它按照先進后出的原則存儲數(shù)據(jù),先進入的數(shù)據(jù)被壓入棧底灼捂,最后
的數(shù)據(jù)在棧頂离例,需要讀數(shù)據(jù)的時候從棧頂開始彈出數(shù)據(jù)(最后一個數(shù)據(jù)被第一個讀出來)。
③隊列 (Queue)
一種特殊的線性表悉稠,它只允許在表的前端(front)進行刪除操作宫蛆,而在表的后端(rear)進行插入操作。進行
插入操作的端稱為隊尾的猛,進行刪除操作的端稱為隊頭耀盗。隊列中沒有元素時,稱為空隊列卦尊。
④鏈表 (Linked List)
一種物理存儲單元上非連續(xù)叛拷、非順序的存儲結構,數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序實現(xiàn)的岂却。
鏈表由一系列結點(鏈表中每一個元素稱為結點)組成忿薇,結點可以在運行時動態(tài)生成。每個結點包括兩個部分:
一個是存儲數(shù)據(jù)元素的數(shù)據(jù)域躏哩,另一個是存儲下一個結點地址的指針域署浩。
⑤樹 (Tree)
樹是包含n(n>0)個結點的有窮集合K,且在K中定義了一個關系N震庭,N滿足 以下條件:
(1)有且僅有一個結點 k0瑰抵,他對于關系N來說沒有前驅,稱K0為樹的根結點器联。簡稱為根(root)
(2)除K0外二汛,k中的每個結點,對于關系N來說有且僅有一個前驅拨拓。
(3)K中各結點肴颊,對關系N來說可以有m個后繼(m>=0)。
⑥堆 (Heap)
在計算機科學中渣磷,堆是一種特殊的樹形數(shù)據(jù)結構婿着,每個結點都有一個值。通常我們所說的堆的數(shù)據(jù)結構醋界,是指
二叉堆竟宋。堆的特點是根結點的值最小(或最大)形纺,且根結點的兩個子樹也是一個堆丘侠。
⑦圖 (Graph)
圖是由結點的有窮集合V和邊的集合E組成。其中逐样,為了與樹形結構加以區(qū)別蜗字,在圖結構中常常將結點稱為頂點打肝,
邊是頂點的有序偶對,若兩個頂點之間存在一條邊挪捕,就表示這兩個頂點具有相鄰關系粗梭。
⑧散列表 (Hash)
若結構中存在關鍵字和K相等的記錄,則必定在f(K)的存儲位置上级零。由此断医,不需比較便可直接取得所查記錄。稱
這個對應關系f為散列函數(shù)(Hash function)妄讯,按這個思想建立的表為散列表孩锡。