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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【static关键字的作用是什么?它用在什么场景?static关键字深度解析来袭】

發(fā)布時(shí)間:2024/10/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【static关键字的作用是什么?它用在什么场景?static关键字深度解析来袭】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2021/9/4/18:37

文章目錄

  • 1、一般情況下類的創(chuàng)建
  • 2.一般情況下類創(chuàng)建產(chǎn)生的問(wèn)題
    • 2.1、第一種情況如何使用static解決
    • 2.2、第二種情況如何使用static解決
  • 3.如何調(diào)用static修飾的屬性或方法
  • 4.靜態(tài)變量、方法和非靜態(tài)變量、方法之間的調(diào)用問(wèn)題
  • 5、有關(guān)static相關(guān)的案例
  • 6、靜態(tài)代碼塊
  • 7、靜態(tài)代碼塊的作用以及需要注意的細(xì)節(jié)


1、一般情況下類的創(chuàng)建

一般情況下,只有當(dāng)我們執(zhí)行new來(lái)創(chuàng)建對(duì)象時(shí),才能為數(shù)據(jù)分配存儲(chǔ)空間;其中的方法或者屬性才能被外界調(diào)用

2.一般情況下類創(chuàng)建產(chǎn)生的問(wèn)題

有兩種情況是上面無(wú)法解決的。第一種情況就是為某一特定域分配單一的存儲(chǔ)空間(域也可以理解為類屬性),不去考慮究竟要?jiǎng)?chuàng)建多少對(duì)象;第二種情況是希望某個(gè)方法不與類的任何對(duì)象聯(lián)系在一起,也就是即使沒(méi)有創(chuàng)建對(duì)象,也依舊可以調(diào)用這個(gè)方法。

2.1、第一種情況如何使用static解決

如上圖所示,nation變量的值永遠(yuǎn)為china,創(chuàng)建一兩個(gè)對(duì)象還可以,如果創(chuàng)建了上百個(gè)對(duì)象,那么是不是很浪費(fèi)資源。所以我們可以使用靜態(tài)關(guān)鍵字static進(jìn)行標(biāo)識(shí)該變量,就會(huì)變成如下

這就是使用static解決第一種情況(為特定域分配單一的存儲(chǔ)空間),這靜態(tài)區(qū)里的變量隨著類的加載就存在了。在程序的整個(gè)運(yùn)行過(guò)程中都存在,當(dāng)程序結(jié)束時(shí),由系統(tǒng)進(jìn)行清除。(因此由static修飾的屬性也可以成為全局變量)

2.2、第二種情況如何使用static解決

第二種情況我們都遇到過(guò),比如工具類某某Utils,我們一般都是在其他類中直接類名.方法直接調(diào)用;

使用static修飾也要注意很多,不能過(guò)多的使用static修飾變量或者方法,因?yàn)閟tatic修飾的變量或方法是屬于類層級(jí)的,雖然類的加載而分配存儲(chǔ)空間,因此,你的static方法或者屬性越多,在一開(kāi)始就會(huì)分配固定的內(nèi)存空間,那么大部分的內(nèi)存空間分配給了static,剩下的內(nèi)存空間就不多了,就會(huì)造成內(nèi)存負(fù)擔(dān)。

public static void main(String[] args) {..........}

static方法在不創(chuàng)建對(duì)象的情況下就可以通過(guò)類名調(diào)用,這對(duì)于main方法很重要,main方法是運(yùn)行一個(gè)應(yīng)用的入口點(diǎn)。

3.如何調(diào)用static修飾的屬性或方法

1.類名.屬性

class Test{static String num = 1; } Test.num = 2;

2.引用.屬性

Test test = new Test(); test.num = 2;

由于靜態(tài)修飾的方法或?qū)傩允穷悓蛹?jí)的,隨著類的加載而出現(xiàn),所以通過(guò)類名.方法調(diào)用應(yīng)該都會(huì)明白;那么通過(guò)引用調(diào)用靜態(tài)變量該怎么理解呢?
這是因?yàn)閟tatic修飾的變量或方法是被類的所有對(duì)象共享的,也就是其中任何一個(gè)對(duì)象都可以調(diào)用進(jìn)行修改。

4.靜態(tài)變量、方法和非靜態(tài)變量、方法之間的調(diào)用問(wèn)題

1.無(wú)法在靜態(tài)方法中調(diào)用非靜態(tài)變量

這是因?yàn)殪o態(tài)方法是隨著類的加載而加載,非靜態(tài)變量是new該類對(duì)象時(shí)而加載;前者出現(xiàn)過(guò)早,根本無(wú)法加載到其中的非靜態(tài)變量。

2.非靜態(tài)方法可以調(diào)用靜態(tài)變量

和第一個(gè)類似,靜態(tài)變量首先出現(xiàn),輪到加載非靜態(tài)方法時(shí)當(dāng)然可以得到

3.無(wú)法在靜態(tài)方法中調(diào)用非靜態(tài)方法,可以在靜態(tài)方法中調(diào)用非靜態(tài)方法

總之,只要牢牢記住靜態(tài)和非靜態(tài)的加載順序就很容易理解了。

5、有關(guān)static相關(guān)的案例

class StaticTest {static int num = 10; } StaticTest test1 = new StaticTest(); StaticTest test2 = new StaticTest(); test1.num++; System.out.println(test2.num);

結(jié)果:11

只要記住static修飾的變量被類的所有對(duì)象共享,那么這一類的題就會(huì)很容易就能解決!

6、靜態(tài)代碼塊

首先靜態(tài)代碼塊隨著類的加載而執(zhí)行,而且只運(yùn)行一次;如果由多個(gè)靜態(tài)代碼塊,會(huì)按照順序來(lái)執(zhí)行。

看下面一段代碼是否在你的意料之中

public class StaticTest {static {System.out.println("靜態(tài)代碼塊執(zhí)行....");System.out.println(country);}private static String country = "china";public static void main(String[] args) {System.out.println(country);} }

結(jié)果

當(dāng)我該變順序之后

public class StaticTest {private static String country = "china";static {System.out.println("靜態(tài)代碼塊執(zhí)行....");System.out.println(country);}public static void main(String[] args) {System.out.println(country);} }

結(jié)果:

所以當(dāng)在靜態(tài)代碼塊中調(diào)用靜態(tài)變量時(shí),一定要將定義靜態(tài)變量的位置放在靜態(tài)代碼塊之前。

7、靜態(tài)代碼塊的作用以及需要注意的細(xì)節(jié)

如果一些代碼在項(xiàng)目啟動(dòng)時(shí)就要執(zhí)行并且只需要執(zhí)行一次,那么就可以放到靜態(tài)代碼塊中。比如我們啟動(dòng)一個(gè)項(xiàng)目要加載相應(yīng)的配置文件,那么我們就可以將其放到靜態(tài)代碼塊中

需要注意的細(xì)節(jié)

1.靜態(tài)代碼塊不能出現(xiàn)在任何方法當(dāng)中

無(wú)論是靜態(tài)方法還是非靜態(tài)方法都是如此
對(duì)于非靜態(tài)方法,這個(gè)很好理解,因?yàn)殪o態(tài)代碼塊是在類加載之后就能運(yùn)行的;而非靜態(tài)方法只能在new完對(duì)象之后,通過(guò)對(duì)象才能運(yùn)行這個(gè)方法
對(duì)于靜態(tài)方法,在類加載時(shí),雖然靜態(tài)方法也加載了,但是靜態(tài)方法必須通過(guò)類名或者對(duì)象名才能訪問(wèn)。也就是說(shuō)靜態(tài)方法是被動(dòng)運(yùn)行的,靜態(tài)代碼塊是主動(dòng)運(yùn)行的。

2、靜態(tài)代碼塊不能訪問(wèn)普通變量

這個(gè)應(yīng)該就不用說(shuō)了。需要注意的是靜態(tài)代碼塊中能夠訪問(wèn)靜態(tài)變量,但必須將靜態(tài)變量的位置放在靜態(tài)代碼塊前面。

2021/9/4/22:43

總結(jié)

以上是生活随笔為你收集整理的【static关键字的作用是什么?它用在什么场景?static关键字深度解析来袭】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 国产男女激情 | 婷婷视频网 | 丁香综合激情 | 蜜臀一区二区三区 | 成人久色 | 国产精品揄拍100视频 | 久伊人网 | 日韩大尺度视频 | 韩日黄色 | 日本伊人网 | 欧美爱爱一区二区 | 蜜桃臀av在线 | 日韩在线黄色 | 99精品视频网站 | 欧美偷拍第一页 | 91av色| 中文字幕15页 | 欧美一a一片一级一片 | 亚洲欧美高清在线 | 污网站在线看 | 国产在线观看99 | 成人午夜福利视频 | 欧美日本道 | 欧美天天 | 黄色特级一级片 | 99精品国产成人一区二区 | youjizz国产 | 日韩精品一区二区在线看 | 1000部做爰免费视频 | youjizz麻豆 | 加勒比成人av | 黄色成人av | 国产九九热视频 | 男女激情大尺度做爰视频 | 日韩综合中文字幕 | 九九热播视频 | 国产在线精品一区 | 对白超刺激精彩粗话av | 美女视频在线观看免费 | 成人免费视频国产免费麻豆 | 蜜桃视频一区二区三区 | 日本护士╳╳╳hd少妇 | 又黄又骚又爽 | 久久精品成人一区二区三区蜜臀 | 免费小视频 | 国产日韩91 | 久草av在线播放 | 精品久久久久久中文字幕人妻最新 | 国产又粗又猛又黄又爽 | 亚洲深夜在线 | 黄色美女一级片 | 国产丰满农村老妇女乱 | 色五夜 | 男人的天堂视频在线观看 | 中文字幕免费在线观看 | 成人精品在线观看 | 好色av | 精品人妻少妇嫩草av无码 | 污网在线观看 | 天天操天天干天天干 | 在线观看成人小视频 | 卡通动漫av| 蜜桃视频在线入口www | 一区二区三区久久久 | 一级黄色大片在线观看 | 国产二区在线播放 | 2024国产精品视频 | 国产精品久久久无码一区 | 国产成人精品一二三区 | 综合精品在线 | 激情网络 | 国语对白永久免费 | 日韩第1页 | 日韩视频在线免费观看 | 欧美激情999 | 丰满熟妇人妻av无码区 | 男生女生搞鸡视频 | 精品国产一区二区三区久久久 | 成人毛片在线视频 | 日本少妇aaa | 日本蜜桃视频 | 久久免费精彩视频 | 又骚又黄的视频 | 国产亚洲视频在线 | 综合网五月天 | 久久久91视频 | 人人九九精品 | 国产日本视频 | 91原创视频在线观看 | 国产粉嫩在线 | 成人黄色av网址 | 夜夜涩| 日本三级欧美三级 | 免费一级片网站 | 特黄特色大片免费视频大全 | 亚洲成人av网址 | 欧美日韩一二 | 女性向片在线观看 | 九九热最新网址 |