在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  C/ java的static方法會(huì)不會(huì)造成內(nèi)存負(fù)擔(dān)?

java的static方法會(huì)不會(huì)造成內(nèi)存負(fù)擔(dān)?

https://www.zhihu.com/questio...
這個(gè)問(wèn)題下有人回答說(shuō)
如果是手機(jī)開(kāi)發(fā), static 會(huì)構(gòu)成內(nèi)存負(fù)擔(dān),memory leak 隱患,盡量少用吧。但不用實(shí)例話可以直接調(diào)用有時(shí)又更方便,相對(duì)節(jié)省內(nèi)存,這個(gè)就拿捏吧。。

回答
編輯回答
護(hù)她命

static修飾符能夠與屬性、方法和內(nèi)部類一起使用,表示靜態(tài)的。
一個(gè)類中,一個(gè)static變量只會(huì)有一個(gè)內(nèi)存空間,雖然有多個(gè)類實(shí)例,但這些類實(shí)例中的這個(gè)static變量會(huì)共享同一個(gè)內(nèi)存空間。
static的變量是在類裝載的時(shí)候就會(huì)被初始化。編譯的時(shí)候就會(huì)進(jìn)行靜態(tài)存儲(chǔ)分配。
靜態(tài)存儲(chǔ)分配是指在編譯時(shí)就能確定每個(gè)數(shù)據(jù)目標(biāo)在運(yùn)行時(shí)刻的存儲(chǔ)空間需求,因而在編譯時(shí)就可以給他們分配固定的內(nèi)存空間。

因此,你的static方法或者屬性越多,在一開(kāi)始就會(huì)分配固定的內(nèi)存空間,那么大部分的內(nèi)存空間分配給了static,剩下的內(nèi)存空間就不多了,就會(huì)造成內(nèi)存負(fù)擔(dān)。

至于memory leak隱患是另外一個(gè)話題,不是因?yàn)閟tatic變量太多造成的。

2018年9月5日 11:01
編輯回答
遲月

static方法本身不會(huì)導(dǎo)致memory leak,在static方法中訪問(wèn)static變量或其他釋放不掉的東西才會(huì)導(dǎo)致memory leak隱患

2018年6月30日 20:15
編輯回答
深記你

這樣的說(shuō)法真是胡說(shuō)八道。首先所有的方法本質(zhì)上(底層)都是靜態(tài)的,非靜態(tài)方法只是多傳了一個(gè)隱藏的 this 參數(shù)。所以任何方法不論是否靜態(tài)都會(huì)占用內(nèi)存空間。其次優(yōu)化內(nèi)存不應(yīng)該關(guān)心方法,而是應(yīng)該專注于對(duì)象的生存周期。

2017年3月27日 10:41
編輯回答
掛念你

那個(gè)人簡(jiǎn)直是瞎說(shuō)...

2017年3月27日 09:29