免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Java項目中字符串的存儲位置是哪里

本篇文章為大家展示了Java項目中字符串的存儲位置是哪里,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)主要企業(yè)基礎(chǔ)官網(wǎng)建設(shè),電商平臺建設(shè),移動手機平臺,重慶小程序開發(fā)等一系列專為中小企業(yè)專業(yè)公司產(chǎn)品體系;應(yīng)對中小企業(yè)在互聯(lián)網(wǎng)運營的各種問題,為中小企業(yè)在互聯(lián)網(wǎng)的運營中保駕護航。

在JDK6的時候在Java虛擬機(這里指的是HotSpot)中內(nèi)存區(qū)域分為本地方法棧、虛擬機棧、堆、程序計數(shù)器、方法區(qū)等,方法區(qū)又被稱作永久代。

這里只說一下字符串的存儲位置,在Java虛擬機內(nèi)存中有個區(qū)域叫做運行時常量池,是方法區(qū)的一部分。在JDK6中其中存放的有類的版本、字段、方法、接口等描述信息以及常量池,常量池用來存放編譯期間生成的各種字面量和符號引用,字符串就存儲在這個位置。下面通過代碼來看下現(xiàn)象。

這是JDK6的實驗現(xiàn)象,Java虛擬機的配置如下:
-XX:PermSize=5M -XX:MaxPermSize=5M -Xms5M -Xmx5M -XX:-UseGCOverheadLimit -verbose:gc
其含義是方法區(qū)的初始大小為5M,最大為5M;堆空間的初始大小為5M,最大為5M,當(dāng)垃圾回收時間占的比例較高時不允許報錯,打印垃圾回收信息。

import java.util.ArrayList;
import java.util.List;

public class StringTest {


  static String base = "string";

  public static void main(String[] args) {
    List list = new ArrayList();
    for (int i = 0; i < Integer.MAX_VALUE; i++) {
      String str = base + base;
      base = str;
      list.add(str.intern());
    }
  }

}

運行錯誤如下:

Java項目中字符串的存儲位置是哪里 

可以看到報的是永久代即方法區(qū)的內(nèi)存溢出錯誤,在這里使用了String API的inner方法,其作用是把首次遇到的字符串實例復(fù)制到永久代去,返回的也是永久代中這個字符串實例的引用。

在JDK7中字符串已經(jīng)從常量池中移除,方法區(qū)有被取消掉的趨勢,在JDK7的環(huán)境下虛擬機中使用相同的配置運行以上代碼,情況如下:

Java項目中字符串的存儲位置是哪里 

我們看到的信息是Java虛擬機堆溢出,由此可見在JDK7中字符串的存儲位置已經(jīng)被移到了堆中。

在JDK8的環(huán)境下,使用相同的虛擬機配置信息,就會報一個錯誤,錯誤如下:

Java項目中字符串的存儲位置是哪里 

指出永久代已經(jīng)在JDK8中移除。
在JDK8中新出現(xiàn)的內(nèi)存區(qū)域叫做元空間,其位于本地內(nèi)存中。我們將JDK8的虛擬機配置信息修改為如下:
-Xms5M -Xmx5M -XX:MetaspaceSize=5M -XX:MaxMetaspaceSize=5M -verbose:gc
其含義是堆內(nèi)存的初始大小為5M,最大空間為5M,元空間的初始大小為5M,最大為5M,打印垃圾回收的信息。
運行遇上相同的代碼,打印的錯誤信息如下:

Java項目中字符串的存儲位置是哪里 

上述內(nèi)容就是Java項目中字符串的存儲位置是哪里,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:Java項目中字符串的存儲位置是哪里
路徑分享:http://m.newbst.com/article8/goheip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)定制開發(fā)企業(yè)建站網(wǎng)頁設(shè)計公司品牌網(wǎng)站設(shè)計網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)