java 基礎回顧

基礎知識記憶

1.
byte  1字節8位
short,char 2字節16位
int,float   4字節32位
long,double  8字節64位

2.java中false與0不能轉換

3.& 非短路與and &&短路與

4.java 中數組就是一個對象,有屬性,沒有方法

5.父類中的公開靜態方法,子類繼承,使用子類的類名調用此方法,加載父類

6.靜態初始代碼塊:在類加載時運行 static{……} 只被運行一次,往往用作一個類的準備工作

7.String a1 = "123"; //系統會先去串池中找"123",找到,就共享使用一個,沒找到就在串池中創建一個

8.被fianl修飾的變量就是常量(常量名大寫),變量:常量,一旦賦值,不能改變,爲屬性常量賦值的時機:對於實例常量,初始化或者構造方法中可以賦
值;

9.如果一個類中有抽象方法,那麼這個類必須是抽象類。
抽象類中不一定有抽象方法  ,抽象類中可以有構造方法,是子類在構造子類對象時需要調用的父類(抽象類)的構造方法

10.單例模式:會有一個靜態的屬性,就是該類的一個對象。提供一個靜態方法,來獲得這個唯一的靜態屬性(單
例),同時構造方法私有

11.接口是一種程序結構,是特殊的抽象類。
接口中的方法必須都是公開的抽象方法(public abstract),接口中的屬性都是公開靜態常量(public static
final)。
接口中沒有構造方法
所以一個源文件中可以寫多個接口,但只能有一個公開接口,並且要與源文件的名字一致
接口可以繼承,但是隻能由接口繼承。
接口可以繼承,但是隻能由接口繼承。
在用類去繼承時要換用 implements 關鍵字,這時類和接口也不叫做繼承關係,而是實現關係,但其實質也
是繼承。
接口之間是可以多繼承的,其語法和類的繼承語法是相同的。
接口的意義:
1,接口可以實現多繼承。
2,用接口可以實現混合類型(主類型,副類型),java中可以通過接口分出主次類型。主類型使用繼承,副
類型,使用接口實現。
3,接口進一步深化了標準的思想,接口本身就是一個標準,
他起到了降低耦合性的作用,接口可以使方法的定義和實現相分離,也就是將接口的定義者和實現者相分
離,
接口也可以用於降低模塊間或系統間的耦合性。
針對接口編程可以屏蔽不同實現間的差異,看到的只是實現好的功能。


12.finalize():對象被垃圾收集的時候最後調用的方法

13.equals(): 對象內容的比較

14.內部類
一、複習內部類
1、成員內部類
可以訪問外部類的私有成員,外部類類名.this.屬性
構造成員內部類對象,必須先構造一個外部類對象,外部類對象.new 構造內部類對象
2、靜態內部類
只能訪問外部類的靜態成員
構造靜態內部類對象時,不再需要構造外部類對象
3、局部內部類
在外部類方法內定義的內部類
不僅能訪問外部類的私有成員,而且還能訪問外部類的局部變量,但是要求局部變量是final的
4、匿名內部類
局部內部類,用於實現一個藉口或者繼承一個類,只會構造一次
內部類的作用:
訪問外部類的私有成員,不破壞封裝。可以給編程帶來一些方便
我們可以把接口公開,把接口的實現類以內部類的形式隱藏起來。強制用戶通過接口來實現弱耦合
接口+內部類實現多繼承


15.二、List接口的實現類
1、ArrayList
底層使用數組實現
2、Vector
ArrayList 輕量級 快 線程不安全
Vector 重量級 慢 線程安全的
3、LinkedList
底層使用雙向循環鏈表實現
ArrayList 數組 查詢快 增刪操作慢
LinkedList 鏈表 查詢慢 增刪操作快 棧
使用組合複用實現棧

集合:用一個對象儲存管理多個對象
Collection:元素都是對象
遍歷:迭代遍歷
List:元素有順序,可以重複
遍歷:還可以用for循環(下標)
排序:Collections.sort(list)
實現類:
ArrayList:底層數組實現,查詢快,而增刪慢;輕量級,線程不安全
Vector:底層數組實現,重量級,線程安全
LinkedList:底層鏈表實現,查詢慢,增刪快
在Java中用LinkedList實現一個棧,不用數組,因爲棧的主要功能就是增刪,數組慢;不用Vector,因爲效率

Set:元素無序,元素內容不重複
SortedSet:按照各種排序規則給Set排序

實現類:
HashSet:採用哈希算法保證元素不重複,覆蓋hashCode()保證哈希碼相同,equals()保證true
TreeSet:元素一定要實現了Comparable接口的
根據排序規則,compareTo()返回0,說明是重複元素
Map:元素是鍵值對
key 無序,不重複 value 可以重複
SortedMap:按照key排序
遍歷:values() 遍歷所有的值對象
keySet() 遍歷所有的鍵對象
實現類:
HashMap:線程不安全 , 允許null作爲key和value
Hashtable:線程安全,不允許
TreeSet:SortedSet的實現類

 

 

 

三、多線程
▲ 初始狀態 ▲阻塞狀態 ▲終止狀態▲ 可運行狀態 ▲OS選中▲運行狀態
實現線程代碼的方式:
1、繼承Thread 類,覆蓋run()方法
去底層申請線程並運行,對線程對象調start()方法,main方法是一個主線程
宏觀並行,微觀串行
2、實現Runnable接口
使用多態獲得Runnable對象,成爲目標對象
再利用目標對象構造線程對象 Thread t = new Thread(target);

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章