日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java中的static有哪些特性

本篇文章給大家分享的是有關(guān)Java中的static有哪些特性,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

目前成都創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、義安網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

在了解某樣?xùn)|西的時(shí)候我們通常會從它是什么,為什么,和怎么樣在三方面來衡量,對于java中的static,我們也這樣討論下,要明確以下幾點(diǎn):

1、 static在java中到底代表什么,為何要用它?

2、 static在java中怎么用?

3、 static 有那些特點(diǎn)和使用的“局限”?

4、當(dāng)成員變量被靜態(tài)修飾后,和非靜態(tài)成員變量的區(qū)別?

1、 static在java中到底代表什么,為何要用它?

static――靜態(tài)――“指定位置“

首先,我們來看看java的內(nèi)存:java把內(nèi)存分為棧內(nèi)存和堆內(nèi)存,棧內(nèi)存用來存放一些基本類型的變量和數(shù)組及對象的引用變量,而堆內(nèi)存主要是來放置對象的。

用 static的修飾的變量和方法,實(shí)際上是指定了這些變量和方法在內(nèi)存中的“固定位置”-static storage。既然要有“固定位置”那么他們的 “大小”似乎就是固定的了,有了固定位置和固定大小的特征了,在棧中或堆中開辟空間那就是非常的方便了。如果靜態(tài)的變量或方法在不出其作用域的情況下,其引用句柄是不會發(fā)生改變的。

我們常看到:static變量有點(diǎn)類似于C中的全局變量的概念;靜態(tài)表示的是內(nèi)存的共享,就是它的每一個(gè) 實(shí)例都指向同一個(gè)內(nèi)存地址。把static拿來,就是告訴JVM它是靜態(tài)的,它的引用(含間接引用)都是指向同一個(gè)位置,在那個(gè)地方,你把它改了,它就不會變成原樣,你把它清理了,它就不會回來了。

注:java的主類中main()方法本身就是一個(gè)static的,所以main方法的執(zhí)行就是在沒有產(chǎn)生新的實(shí)例的情況。

2、 static在java中怎么用?

  • static是一個(gè)修飾符,用于修飾成員(成員變量和成員函數(shù))。
  • 當(dāng)成員被靜態(tài)修飾后,就多了一個(gè)調(diào)用方式,除了可以被對象調(diào)用外,還可以直接被類名調(diào)用:類名.靜態(tài)成員。

3、 static 有那些特點(diǎn)和使用的“局限”?

(一)特點(diǎn)

  • 靜態(tài)成員隨著類的加載而加載;
  • 靜態(tài)成員優(yōu)先于對象存在;
  • 靜態(tài)成員被所有對象所共享;
  • 靜態(tài)成員多了一個(gè)中調(diào)用方式,可以被類名直接調(diào)用。

(二)利弊

利:

  • 對對象的共享數(shù)據(jù)進(jìn)行單獨(dú)空間的存儲,節(jié)省空間,沒有必要每一個(gè)對象中都存儲一份;
  • 可以直接被類名調(diào)用。

弊:

  • 生命周期過長;
  • 訪問出現(xiàn)局限性,只能訪問靜態(tài)。

(三)注意事項(xiàng)

  • 靜態(tài)方法只能訪問靜態(tài)成員, 非靜態(tài)方法既可以訪問靜態(tài)又可以訪問非靜態(tài);
  • 靜態(tài)方法中不可以定義this,super關(guān)鍵字;(因?yàn)閠his代表是對象,而靜態(tài)存在時(shí),有可能沒有對象,且靜態(tài)優(yōu)先于對象存在。所以靜態(tài)方法運(yùn)行時(shí),this是沒有任何對象代表的。 簡單說,先進(jìn)內(nèi)存的數(shù)據(jù)不可以訪問后進(jìn)內(nèi)存的數(shù)據(jù),可是后進(jìn)內(nèi)存數(shù)據(jù)可以訪問先進(jìn)內(nèi)存的數(shù)據(jù))
  • 主函數(shù)是靜態(tài)的

4、當(dāng)成員變量被靜態(tài)修飾后,和非靜態(tài)成員變量的區(qū)別?

  • 靜態(tài)變量也稱為類變量,也就是直接可以被類名調(diào)用的變,這個(gè)變量是所屬于類的;非靜態(tài)變量稱為成員變量,或者實(shí)例變量,是被對象調(diào)用的,是所屬具體對象的。
  • 靜態(tài)變量隨著類的加載而加載,也意味著隨著類的消失而消失,生命周期最長;實(shí)例變量,隨著對象的創(chuàng)建而加載,隨著對象的消失而消失,按照對象的生命周期而存在。
  • 靜態(tài)變量存儲在方法區(qū)的靜態(tài)區(qū)中;實(shí)例變量存在于對象所屬的堆內(nèi)存中。
  • 靜態(tài)變量數(shù)據(jù),被所有對象所共享;實(shí)例變量是對象中的特有數(shù)據(jù)。

以上就是Java中的static有哪些特性,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文標(biāo)題:Java中的static有哪些特性
URL標(biāo)題:http://www.dlmjj.cn/article/piceed.html