亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

什么情況下使用靜態(tài)方法?和實例方法的區(qū)別?

cpupro / 3926人閱讀

摘要:在加載時機和占用內(nèi)存上,靜態(tài)方法和實例方法是一樣的,在類型第一次被使用時加載。從面向?qū)ο蟮慕嵌壬蟻碚f,在抉擇使用實例化方法或靜態(tài)方法時,應該根據(jù)是否該方法和實例化對象具有邏輯上的相關(guān)性,如果是就應該使用實例化對象反之使用靜態(tài)方法。

1、在加載時機和占用內(nèi)存上,靜態(tài)方法和實例方法是一樣的,在類型第一次被使用時加載。調(diào)用的速度基本上沒有差別。
2、方法不可能在堆或者堆棧上分配內(nèi)存,方法作為代碼是被加載到特殊的代碼內(nèi)存區(qū)域,這個內(nèi)存區(qū)域是不可寫的。
方法占不占用更多內(nèi)存,和它是不是static沒什么關(guān)系。
因為字段是用來存儲每個實例對象的信息的,所以字段會占有內(nèi)存,并且因為每個實例對象的狀態(tài)都不一致(至少不能認為它們是一致的),所以每個實例對象的所有字段都會在內(nèi)存中有一分拷貝,也因為這樣你才能用它們來區(qū)分你現(xiàn)在操作的是哪個對象。
但方法不一樣,不論有多少個實例對象,它的方法的代碼都是一樣的,所以只要有一份代碼就夠了。因此無論是static還是non-static的方法,都只存在一份代碼,也就是只占用一份內(nèi)存空間。
同樣的代碼,為什么運行起來表現(xiàn)卻不一樣?這就依賴于方法所用的數(shù)據(jù)了。主要有兩種數(shù)據(jù)來源,一種就是通過方法的參數(shù)傳進來,另一種就是使用class的成員變量的值……
3、如果一個方法與他所在類的實例對象無關(guān),那么它就應該是靜態(tài)的,而不應該把它寫成實例方法。所以所有的實例方法都與實例有關(guān),既然與實例有關(guān),那么創(chuàng)建實例就是必然的步驟,沒有麻煩簡單一說。

當然你完全可以把所有的實例方法都寫成靜態(tài)的,將實例作為參數(shù)傳入即可,一般情況下可能不會出什么問題。

從面向?qū)ο蟮慕嵌壬蟻碚f,在抉擇使用實例化方法或靜態(tài)方法時,應該根據(jù)是否該方法和實例化對象具有邏輯上的相關(guān)性,如果是就應該使用實例化對象 反之使用靜態(tài)方法。這只是從面向?qū)ο蠼嵌壬蟻碚f的。

如果從線程安全、性能、兼容性上來看 也是選用實例化方法為宜。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/29649.html

相關(guān)文章

  • 超詳細Java面試題總結(jié)(一)之Java基礎知識篇

    摘要:最近在備戰(zhàn)面試的過程中,整理一下面試題。成員變量如果沒有被賦初值,則會自動以類型的默認值而賦值一種情況例外被修飾但沒有被修飾的成員變量必須顯示地賦值而局部變量則不會自動賦值。   最近在備戰(zhàn)面試的過程中,整理一下面試題。大多數(shù)題目都是自己手敲的,網(wǎng)上也有很多這樣的總結(jié)。自己感覺總是很亂,所以花了很久把自己覺得重要的東西總結(jié)了一下。 面向?qū)ο蠛兔嫦蜻^程的區(qū)別 面向過程:  優(yōu)點:性能比面...

    vpants 評論0 收藏0
  • 2019年Android開發(fā)者常見面試題(一)

    摘要:內(nèi)部類的作用成員內(nèi)部類成員內(nèi)部類可以無條件訪問外部類的所有成員屬性和成員方法包括成員和靜態(tài)成員。匿名內(nèi)部類匿名內(nèi)部類就是沒有名字的內(nèi)部類靜態(tài)內(nèi)部類指被聲明為的內(nèi)部類,他可以不依賴內(nèi)部類而實例,而通常的內(nèi)部類需要實例化外部類,從而實例化。 大部分開發(fā)者進入公司,一個必備的環(huán)節(jié)就是面試,只有通過面試,才能知道求職者是否符合公司的要求,也只有通過面試,求職者才能有幸進入到企業(yè)里工作,那么怎么...

    JiaXinYi 評論0 收藏0
  • Java實現(xiàn)單例幾種方式

    摘要:單例模式的懶漢實現(xiàn)線程安全通過設置同步方法,效率太低,整個方法被加鎖模擬在創(chuàng)建對象之前做一些準備工作使用上面的測試類,測試結(jié)果可以看到,這種方式達到了線程安全。可以說這種方式是實現(xiàn)單例模式的最優(yōu)解。 1. 什么是單例模式 單例模式指的是在應用整個生命周期內(nèi)只能存在一個實例。單例模式是一種被廣泛使用的設計模式。他有很多好處,能夠避免實例對象的重復創(chuàng)建,減少創(chuàng)建實例的系統(tǒng)開銷,節(jié)省內(nèi)存。 ...

    zengdongbao 評論0 收藏0
  • Java編程中那些再熟悉不過知識點(持續(xù)更新)

    摘要:語言通過字節(jié)碼的方式,在一定程度上解決了傳統(tǒng)解釋型語言執(zhí)行效率低的問題,同時又保留了解釋型語言可移植的特點。有針對不同系統(tǒng)的特定實現(xiàn),,,目的是使用相同的字節(jié)碼,它們都會給出相同的結(jié)果。項目主要基于捐贈的源代碼。 本文來自于我的慕課網(wǎng)手記:Java編程中那些再熟悉不過的知識點,轉(zhuǎn)載請保留鏈接 ;) 1. 面向?qū)ο蠛兔嫦蜻^程的區(qū)別 面向過程 優(yōu)點: 性能比面向?qū)ο蟾?。因為類調(diào)用時需要實例...

    taowen 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<