設計模式就是在大量的實踐中總結和理論以後優選的代碼結構、編程風格、以及解決問題的思考方式。java
說白了設計模式就是在實際編程中逐漸總結出的解決問題的套路,相似於數學公式。編程
類的單例設計模式:在開發過程當中有且只有一個實例化對象。設計模式
怎麼作到在整個系統運行過程當中,這個類只被實例化一次?不論在哪隻調用這一個實例?數組
什麼狀況下使用單例設計模式?安全
實例化對象的建立要消耗大量的時間和資源,例如構造方法中的代碼行太多。或者頻繁的new的新對象沒有必要。spa
//餓漢式:一開始就new一個對象出來
public class Singleton { //私有構造方法,調用這個類的人就不能直接使用new來建立對象 private Singleton(){ }
//私有的Singleton類型的類變量 private static Singleton INSTANCE = new Singleton();
//構建返回返回類變量的方法 public static Singleton getInstance(){ return INSTANCE; } }
//懶漢式:最開始,對象是null,直到有第一我的調用才new一個對象,以後全部的調用都用這個對象 public class Singleton { //先私有化構造方法,不能讓外邊直接new對象 private Singleton() { } //私有化一個對象 private static Singleton instance = null; //公共方法:判斷instance是否爲null,爲null就實例化,不是null就直接返回instance public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } //此版本的懶漢式存在安全問題
理解main方法的語法設計
因爲java虛擬機須要調用main()方法,因此該方法的訪問權限必須是public。又由於java虛擬機在執行main()方法時沒必要建立對象,因此該方法必須是static的。該方法接收一個String類型的數組參數,該數組保存執行java命令時傳遞給全部運行的類的參數。對象