亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中static的特點

 更新時間:2017年03月23日 11:58:18   作者:小喬喬喬要加油  
本文主要介紹了Java中static的特點。具有很好的參考價值。下面跟著小編一起來看下吧

前兩天面試時被問到靜態(tài)的特點,當時回答地不是很好,現(xiàn)在來總結(jié)一下

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

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

2、 static在java中怎么用?

3、 static 有那些特點和使用的“局限”?

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

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

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

2、 static在java中怎么用?

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

3、 static 有那些特點和使用的“局限”?

(一)特點

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

(二)利弊

利:

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

弊:

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

(三)注意事項

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

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

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

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • JavaMail與Spring整合過程解析

    JavaMail與Spring整合過程解析

    這篇文章主要介紹了JavaMail與Spring整合過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • httpclient的CPool定義方法詳解

    httpclient的CPool定義方法詳解

    這篇文章主要為大家介紹了httpclient的CPool定義方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 淺談Java由于不當?shù)膱?zhí)行順序?qū)е碌乃梨i

    淺談Java由于不當?shù)膱?zhí)行順序?qū)е碌乃梨i

    為了保證線程的安全,我們引入了加鎖機制,但是如果不加限制的使用加鎖,就有可能會導(dǎo)致順序死鎖(Lock-Ordering Deadlock)。本文將會討論一下順序死鎖的問題。
    2021-06-06
  • Java 中的 this 和 super 區(qū)別

    Java 中的 this 和 super 區(qū)別

    這篇文章主要介紹了Javathis與super本質(zhì)區(qū)別,this與super是類實例化時通往Object類通道的打通者;this和super在程序中由于其經(jīng)常被隱式的使用而被我們忽略,但是理解其作用和使用規(guī)范肯定是必須的。接下來將詳述this與super的作用和區(qū)別,需要的朋友可以參考一下
    2021-11-11
  • Springboot Thymeleaf實現(xiàn)HTML屬性設(shè)置

    Springboot Thymeleaf實現(xiàn)HTML屬性設(shè)置

    這篇文章主要介紹了Springboot Thymeleaf實現(xiàn)HTML屬性設(shè)置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2007-11-11
  • Java import導(dǎo)入及訪問控制權(quán)限修飾符原理解析

    Java import導(dǎo)入及訪問控制權(quán)限修飾符原理解析

    這篇文章主要介紹了Java import導(dǎo)入及訪問控制權(quán)限修飾符過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • String與XML互轉(zhuǎn)以及從XML取節(jié)點值并修改的方法

    String與XML互轉(zhuǎn)以及從XML取節(jié)點值并修改的方法

    今天小編就為大家分享一篇String與XML互轉(zhuǎn)以及從XML取節(jié)點值并修改的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 新手了解java基礎(chǔ)知識(一)

    新手了解java基礎(chǔ)知識(一)

    這篇文章主要介紹了Java基礎(chǔ)知識,本文介紹了Java語言相關(guān)的基礎(chǔ)知識、歷史介紹、主要應(yīng)用方向等內(nèi)容,需要的朋友可以參考下,希望對你有所幫助
    2021-07-07
  • SpringBoot持久化層操作支持技巧

    SpringBoot持久化層操作支持技巧

    這篇文章主要介紹了SpringBoot持久化層操作支持技巧,需要的朋友可以參考下
    2017-10-10
  • dubbo 如何使用logback來輸出日志

    dubbo 如何使用logback來輸出日志

    這篇文章主要介紹了dubbo 如何使用logback來輸出日志的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論