java day07第七课静态的和单例设计模式
生活随笔
收集整理的這篇文章主要介紹了
java day07第七课静态的和单例设计模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
靜態的(static)和單例模式
main函數
主函數是一個特殊的函數,作為程序的入口,可以被jvm調用主函數的定義
public 表示該函數的訪問權限是最大的。 static 代表主函數隨著類的加載就已經存在了。 void 主函數沒有具體的返回值。 main 不是關鍵字,但是是一個特殊的單詞,但是可以被jvm識別。 參數(String[] args) 參數的類型是一個數組,該數組的元素師String。 args 參數名,所以可以改,args 全稱arguments。 主函數是固定格式的,為了使jvm識別。 jvm在調用主函數,傳入的是new String[0].我們也可以傳入給定的值。 錯誤演示: public static void main(int a) {System.out.println("Hello World!");}public static void main(String[] args,int a) {System.out.println("Hello World!");}靜態什么時候使用
靜態修飾的內容有成員變量和成員函數。
什么時候定義靜態變量呢?
什么時候定義靜態函數呢?
當功能內部沒有訪問到非靜態數據(對象的特有數據),那么該功能可以定義成靜態的。 class Person{String name;public static void run(){System.out.println("我是誰?");} } class Test{ public static void main(String[] args) {Person p = new Person();p.run();/*我們沒有用到對象的屬性,沒必要通過對象來調用方法,我們可以直接使用:Person.run(),所以必須加上static,如果我們要加上System.out.println(name+"我是誰?");這個時候我們就不能用static。*/}靜態代碼塊
格式: static{靜態代碼塊中執行的語句 }特點
隨著類的加載而執行,只執行一次。一般用于給類的初始化練習:
靜態代碼塊,構造代碼塊,構造方法執行順序?
單例設計模式
解決某一類問題最行之有效的方法。java 中一共有二十三種設計模式。
單例設計模式:
先初始化對象稱之為餓漢式子。 解決一個類在內存中只存在一個對象。 class Single(){private Single(){}Single ss = new Single();public Single getSingle(){return ss;}}class Demo(){public static void main(String[] args) {//new Single();//new Single();/* 想要保證對象的唯一:1、為了避免其他程序過多建立該類對象,先禁止其他程序建立該類對象。2、為了讓其他程序可以訪問到該類程序,只好在本類中自定義一個對象。3、為了方便其他程序對自定義對象的訪問,可以對外提供一些訪問方式。*/}}實現:
1、構造函數私有化;2、在類中創建一個本類對象;3、提供一個方法可以獲取到該對象;實現方式二:
對象是方法被調用時,才初始化,也叫做對象的延時加載,稱為:懶漢式class Single{ private static Single s = null; private Single(){} public static Single getSingle(){if(s == null){synchronized(Single.class){if(s == null){s = new Single();}}} return s; }}
轉載于:https://www.cnblogs.com/chendujie/p/6804999.html
總結
以上是生活随笔為你收集整理的java day07第七课静态的和单例设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【BZOJ3527】【ZJOI2014】
- 下一篇: .Net 获取日期所属于一年中的第几周