java以內存分佈

在java中,內存分爲三個部分棧區,代碼區(數據區) 堆區。java

1.在一個程序中,好比一個類被編譯後,就是放在代碼區裏的,放在代碼去裏的還有靜態變量,靜態方法。對象

2.當程序建立一個基本數據類型的變量的時候,直接把變量存放在棧區,內存

3.當程序new一個對象的時候。程序在棧區建立了一個變量的引用。在堆區開闢了一塊內存。用這個引用指向這塊內存。字符串

4.區別編譯

String a = "abc"和String b = new String("abc")的區別變量

第一種,是直接在棧區存放變量。第二種是,在棧區建立一個變量,而後在堆區的字符串池建立一個變量。在堆區開盤一個內存。用棧區的引用直線字符串池的引用,字符串池的引用指向內存。當在來一個String c = new String(「abc」)時,會先去字符串池裏查找,若是有的話會直接指向這個引用。而不開闢新的內存數據類型

相關文章
相關標籤/搜索