原创 wait()與notify()/notifyAll()

這3個方法並不是Thread單獨的方法,他們是Object的方法。 調用wait()方法時會釋放鎖,這樣其他線程就獲得當前對象的鎖,從而進入synchronized方法中;可以通過notify()/notifyAll(),或者時

原创 InputStream與OutputStream

之前學IO的時候,分不清什麼時候用in和out, 通過流的動向區分in和out 若是硬盤,網絡———->內存,那麼就是要用in 若是內容———->硬盤,網絡,那麼就是要用out, 簡單來說就是內存的數據到外設就是out,外

原创 java多線程

Thread類和Runnable接口均能實現多線程,一般提倡用使用Runnable。原因是Java是單繼承的,繼承Thread就比較侷限了;第二是對於資源共享時,Runnable避免了資源的重複使用。 例子: public cl

原创 String創建對象

先看一段代碼: public class App { public static void main(String args[]) { String s1 = "Hello Java"; String s2

原创 重載與重寫

先說下重載(Overloading): (1)方法重載指的是在一個類中有幾個同名函數同時存在,但具有不同的參數個數或者參數類型不同。 (2)調用方法時根據傳遞的不同參數個數或者參數類型來決定使用哪個方法,體現了多態性。 cla

原创 抽象工廠

抽象工廠相對於簡單工廠來說多了幾個要實現的接口 public interface FruitDemo { void eat(); } //加一個接口 public interface MeatDemo {

原创 Socket通訊

1.創建Client端 創建一個Socket實例指定遠程主機IP和端口建立一個TCP連接。 通過Socket套接字的輸入輸出流(I/O Stream) 進行通信。 public class TCPClient {

原创 類的加載順序

Java類首次裝載時,會對靜態成員變量或方法進行一次初始化,但是方法不被調用是不會執行的, 靜態成員變量和靜態初始化塊級別相同,非靜態成員變量和非靜態初始化塊級別相同。 public class App { {

原创 Java的幾種訪問權限

public: 一般稱之爲“公共的”,被其修飾的類、屬性以及方法不僅可以跨類訪問,而且允許跨包訪問。 private: 一般稱之爲“私有的”,被其修飾的類、屬性以及方法只能被該類的對象訪問,其子類不能訪問,更不能允許跨包訪問。

原创 Java封裝性

Java封裝性指其他類不能隨意更改本類中的成員變量 在一個類中用private關鍵字修飾成員變量,表示這個成員變量是私有的,只能被本類中的方法調用,而不能被其他類的成員調用。 其他類要想對這個私有的變量進行操作,一般都有讀取和

原创 簡單工廠

簡單工廠又叫靜態工廠方法模式 public interface FruitDemo { void eat(); } public class EatApple implements FruitDemo{ publ

原创 單例模式

單例模式屬於對象的創建模式,它確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例; 將默認構造方法用private關鍵字修飾,那麼其他類就不能通過new來創建多個對象; 分爲兩種創建方式: 1.餓漢式單例類

原创 static

1.引用static的方法和變量,不需要和實例捆綁在一起,這可以提高代碼的編寫效率,在類裝載的時候就開始初始化了並完成靜態變量的內存分配,可用類名直接訪問。 2.靜態方法中只能引用靜態方法,不能引用非靜態方法,而非靜態方法可以引

原创 Java 內部類

Java內部類可以很好的實現多繼承; 內部類可以訪問外部類的私用成員; public interface Test01 { public void test(); } public class Test02 {

原创 List常用方法

List接口繼承於Collection接口, ArrayList,LinkedList,Vector均實現了List接口。 主要以ArrayList爲例介紹幾種常用的方法: List list = new ArrayList