日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

java day07第七课静态的和单例设计模式

發(fā)布時(shí)間:2025/4/14 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java day07第七课静态的和单例设计模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

靜態(tài)的(static)和單例模式

main函數(shù)

主函數(shù)是一個(gè)特殊的函數(shù),作為程序的入口,可以被jvm調(diào)用

主函數(shù)的定義

public 表示該函數(shù)的訪問權(quán)限是最大的。 static 代表主函數(shù)隨著類的加載就已經(jīng)存在了。 void 主函數(shù)沒有具體的返回值。 main 不是關(guān)鍵字,但是是一個(gè)特殊的單詞,但是可以被jvm識(shí)別。 參數(shù)(String[] args) 參數(shù)的類型是一個(gè)數(shù)組,該數(shù)組的元素師String。 args 參數(shù)名,所以可以改,args 全稱arguments。 主函數(shù)是固定格式的,為了使jvm識(shí)別。 jvm在調(diào)用主函數(shù),傳入的是new String[0].我們也可以傳入給定的值。 錯(cuò)誤演示: public static void main(int a) {System.out.println("Hello World!");}public static void main(String[] args,int a) {System.out.println("Hello World!");}

靜態(tài)什么時(shí)候使用

靜態(tài)修飾的內(nèi)容有成員變量和成員函數(shù)。
什么時(shí)候定義靜態(tài)變量呢?

當(dāng)對(duì)象中出現(xiàn)共享數(shù)據(jù)時(shí)。(例子:人名是我們共享的屬性,而不是共享數(shù)據(jù))該數(shù)據(jù)被靜態(tài)所修飾。對(duì)象中的特有數(shù)據(jù)要定義成非靜態(tài)存在于內(nèi)存中

什么時(shí)候定義靜態(tài)函數(shù)呢?

當(dāng)功能內(nèi)部沒有訪問到非靜態(tài)數(shù)據(jù)(對(duì)象的特有數(shù)據(jù)),那么該功能可以定義成靜態(tài)的。 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();/*我們沒有用到對(duì)象的屬性,沒必要通過對(duì)象來調(diào)用方法,我們可以直接使用:Person.run(),所以必須加上static,如果我們要加上System.out.println(name+"我是誰?");這個(gè)時(shí)候我們就不能用static。*/}

靜態(tài)代碼塊

格式: static{靜態(tài)代碼塊中執(zhí)行的語句 }

特點(diǎn)

隨著類的加載而執(zhí)行,只執(zhí)行一次。一般用于給類的初始化

練習(xí):
靜態(tài)代碼塊,構(gòu)造代碼塊,構(gòu)造方法執(zhí)行順序?

單例設(shè)計(jì)模式

解決某一類問題最行之有效的方法。java 中一共有二十三種設(shè)計(jì)模式。

單例設(shè)計(jì)模式:

先初始化對(duì)象稱之為餓漢式子。 解決一個(gè)類在內(nèi)存中只存在一個(gè)對(duì)象。 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();/* 想要保證對(duì)象的唯一:1、為了避免其他程序過多建立該類對(duì)象,先禁止其他程序建立該類對(duì)象。2、為了讓其他程序可以訪問到該類程序,只好在本類中自定義一個(gè)對(duì)象。3、為了方便其他程序?qū)ψ远x對(duì)象的訪問,可以對(duì)外提供一些訪問方式。*/}}

實(shí)現(xiàn):

1、構(gòu)造函數(shù)私有化;2、在類中創(chuàng)建一個(gè)本類對(duì)象;3、提供一個(gè)方法可以獲取到該對(duì)象;

實(shí)現(xiàn)方式二:

對(duì)象是方法被調(diào)用時(shí),才初始化,也叫做對(duì)象的延時(shí)加載,稱為:懶漢式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; }

}

轉(zhuǎn)載于:https://www.cnblogs.com/chendujie/p/6804999.html

總結(jié)

以上是生活随笔為你收集整理的java day07第七课静态的和单例设计模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。