Filed和Method
- 被static修飾的成員變量和方法载佳,存放在方法區(qū),這在內(nèi)存方面和普通的成員變量的不同表現(xiàn)在:
- 1.對于成員變量兑徘,在堆中為對象開辟空間時刚盈,靜態(tài)成員變量所在的空間,存放的是指向方法區(qū)的地址挂脑,而普通的是直接存放值or指向堆中的地址。(某老師說的欲侮,應該不對崭闲,根本和this不兼容)
- 2.對于方法,在堆中為對象開辟空間時威蕉,不會為靜態(tài)方法開辟空間刁俭,但是會為普通方法開辟空間,存放指向方法區(qū)的地址(方法地址)韧涨。
- 靜態(tài)成員變量存放在方法區(qū)牍戚,同一個類的多個對象通過在堆區(qū)存放地址侮繁,來共享靜態(tài)成員變量。
- 因此靜態(tài)成員變量可能在某些情況下會造成:過高的耦合如孝,因為是多個對象共享的宪哩,只要有一個對象修改了該“靜態(tài)成員變量”,相當于修改了所有對象中的該靜態(tài)成員變量第晰。因此將靜態(tài)成員變量聲明為final是一個不錯的選擇锁孟。
Paste_Image.png