JAVA基礎容易疏忽的知識點總結
最近看了下18天JAVA學習筆記這個資料,其中裡面有些在使用JAVA中容易讓人疏忽的知識點,於是我就把一些容易讓人疏忽的地方摘抄了下來,都是一些基礎的東西,算是一個小的總結吧大家可以看下,自己也可以複習一下。
-----------------------------------------------
類、物件、例項三者的關係:
類:是物件的模板,可以例項化物件
物件:類的個體
例項:實現的物件
student s;
s=new student();
其中 Student為類,s為物件,new Student()為例項,s賦值後也是例項了。
封裝:
類的屬性加private修飾符,來限制只能夠在類的內部進行訪問,有效的保護資料。
對於類中的私有屬性,要對其給出一對方法getXxx(),setXxx()訪問私有屬性,保證對私有屬性的操作的安全性。
方法公開的是方法的宣告,即只須知道引數和返回值就可以呼叫該方法,隱藏方法的實現的細節。
一個物件和外界的聯絡應當通過一個統一的介面,應當公開的公開,應當隱藏的隱藏。
父類的構造器不能被子類繼承
方法和屬性可以被繼承,許可權不限制能否繼承過來,限制的是能否直接訪問
先構造父類,後構造子類,先this後super
static修飾的方法,不能直接訪問本類中的非靜態成員,但本類的非靜態方法可以訪問本類的靜態成員。
java中的main方法必須寫成static的原因:在類載入時無法建立物件,而靜態方法可以不通過物件呼叫,所以在類載入時就可以通過main方法入口來執行程式。
單例設計模式:
一個類只允許有一個物件,保證所有引用的物件都是同一個物件。
因為只允許存在一個物件,則不允許在外面直接new出新的物件,所以應該把構造器設為private,。
在類內定義一個公開的靜態方法,讓使用者進行呼叫,通過該方法去獲得一個例項。
例:
public calss Singleton{
private static Singleton s;
private Singleton(){}
public static Singleton newInstance(){
if ( s == null)
s = new Singleton();
return s;
}
}
有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法。
在介面中,所有的屬性都是公開、靜態的常量:public static final
介面與介面之間可以多繼承,用extends,多個之間用逗號隔開。
介面中沒有構造方法,不能用“new 介面名”來例項化一個介面,但可以宣告一個介面。
靜態內部類只能訪問外部類的靜態成員。
在內部類訪問外部類的例項變數:外部類名.this.屬性
在外部類的外部,要建立一個成員內部類物件,要首先建立一個外部類物件,然後再建立一個成員內部類物件。
在本類內部生成內部類物件的方式:
在靜態方法中:Inner in = new Outer().new Inner();
在非靜態方法中:Inner in = this.new Inner();
區域性內部類不僅可以訪問外部類的例項變數,還可以訪問外部類的區域性變數,但要求外部類的區域性變數必須為final的。
如果在方法的程式中有一行throw new Exception(),那麼其後的程式不執行,如果沒有對這個可能出現的檢查結果進行處理,那麼程式就會報錯。
throws和throw沒有必然的聯絡。
如果父型別無throws時,子型別也不允許出現throws。此時只能使用try catch。
FlowLayout:流式佈局管理,Panel和JPanel的預設佈局管理就是FlowLayout
BorderLayout:按方位進行佈局管理,不明確指定,就會預設載入在中間,Frame和JFrame預設的佈局管理器是BorderLayout
實現監聽的步驟:
a. 實現監聽介面implements XxxxListener
b. 重寫方法actionPerformed(ActionEvent e)
c. 註冊監聽addXxxxListener(ActionListener l)
程式與執行緒的區別:
程式有獨立的程式空間,程式中的資料存放空間(堆空間和棧空間)是獨立的。
執行緒的堆空間是共享的,棧空間是獨立的,執行緒消耗的資源也比程式小,相互之間可以影響的。
Thread中的一些方法:
currentThread()
返回對當前正在執行的執行緒物件的引用(實現介面方式時使用)
sleep(long millis)
在指定的毫秒數內讓當前正在執行的執行緒休眠(暫停執行)。
本執行緒不會去搶,除非sleep結束。
多個執行緒之間都會去搶執行許可權,不會考慮優先順序。
yield()
暫停當前正在執行的執行緒物件,並執行其他執行緒。
只給本類或者優先順序大於本類優先順序的執行緒去搶。
join()
等待該執行緒終止。
放在start()前面則沒有用處。
setDaemon(boolean on)
將該執行緒標記為守護執行緒,守護執行緒需要依賴其他執行緒,會在虛擬機器停止的時候停止。
抽象方法不能是synchronized同步的方法。
構造方法不能是synchronized同步的方法。
選擇流的思路:
先考慮是輸入流還是輸出流,
再考慮是位元組流還是字元流,
最後考慮是節點流還是處理流。
解決亂碼的方式:
String temp = 亂碼的字串
temp = new String(temp.getBytes("ISO8859-1") , "GBK")
將temp按照ISO8859-1的方式進行解碼生成一個位元組序列,然後在按照GBK的方式解碼位元組序列生成字串。
File類的物件實施表示一個檔案並不是真正的檔案,只是一個代理而已,通過這個代理來操作檔案.
網路中傳遞物件必須實現序列化。
只有ByteBuffer類提供了直接緩衝。使用直接緩衝,不影響程式。其它類想用直接緩衝需要進行轉換。
國家會相容語言,但語言不會相容國家。
相關文章
- Java基礎知識點總結Java
- Java基礎面試知識點總結Java面試
- Java基礎知識總結Java
- Java個人知識點總結(基礎篇)Java
- 容易遺忘的知識點總結
- Redis 基礎知識點總結Redis
- ES 基礎知識點總結
- Java基礎知識總結-1Java
- Flutter 知識點總結-基礎篇Flutter
- 前端知識點總結——JavaScript基礎前端JavaScript
- Java基礎對反射知識總結Java反射
- python基礎語法知識點總結Python
- 零基礎學習Java,全方位知識點總結!Java
- Java 知識點總結Java
- java基礎知識點Java
- 總結的Java知識點集合Java
- Core Java 的知識點總結Java
- Rust 基礎知識總結Rust
- SpringIOC基礎知識總結Spring
- 索引基礎知識總結索引
- React 基礎知識總結React
- Java基礎知識點梳理Java
- 後端知識點總結——NODE.JS基礎後端Node.js
- Java基礎知識回顧之七 —– 總結篇Java
- Java基礎知識回顧之七 ----- 總結篇Java
- Java知識點總結(Java容器-List)Java
- Java知識點總結(Java容器-Vector)Java
- Java知識點總結(Java泛型)Java泛型
- Java知識點總結(Java容器-Set)Java
- 【java學習】java知識點總結Java
- JS基礎知識總結(2)JS
- JS基礎知識總結(1)JS
- CSS基礎知識總結(4)CSS
- TCP/IP 基礎知識總結TCP
- JS基礎知識深入總結JS
- java面試知識點總結Java面試
- Java 面試知識點總結Java面試
- Java入門基礎知識點Java
- Java 基礎面試知識點Java面試