• 字符串常量池处在JVM的堆中,那么是在堆的哪个部分呢


    java8之后,堆在逻辑上被分为新生区+养老区+元空间

    然后字符串常量池也被放在了堆中

    网络上全都是只写了这一个结论,即被放在了堆中

    那么到底是堆的哪个部分呢,我找了很久都没有找到答案

    但是我看到了一个答案是这样子的

     在这个答案中,提到了字符串分配在Java堆的主要部分

    那我想是不是字符串又变成对象一样存在于堆中,然后也需要经过新生区和养老区呢?

    字符串常量池里面的字符串应该也会被回收不是一直存在呢?

    现在我还没有能力解决这个问题,希望有人能够给出答案。

    ---------------------------

    今天看尚硅谷周阳老师的面试题,他讲字符串的时候提到了一句,字符串常量池在java8之后跑到了元空间里面

    我觉得这个比较可信,但是上面的我也无法确定,我比较相信下面这样的说法,即放在了元空间里

    各位自己判断吧

    -----------------------------第三次更新

    java8之后,堆在逻辑上被分为新生区+养老区+元空间

    而元空间是属于本地内存

    所以依照第二次更新的说法,字符串常量池在java8之后跑到了元空间里面,但其实也是属于堆的内存空间里

    所以第一次更新的说法其实和第二次更新的说法并不冲突

    但是大家一般都会说java8之后字符串常量池被放在了   堆中

    ------------------------------第四次更新

    发现一篇可以参考的博客,但是里面还是存在了很多错误,辩证参考吧

    https://www.cnblogs.com/cosmos-wong/p/12925299.html#autoid-0-4-0

  • 相关阅读:
    分析 ajax 请求并抓取 “今日头条的街拍图”
    requests + 正则表达式 获取 ‘猫眼电影top100’。
    爬虫基础(暂缓更新)
    Git 操作笔记:分布式版本控制系统
    python补充
    python基础
    8.最佳电影聚类分析
    文本分析 笔记
    7.文档聚类
    5.词项相似度分析
  • 原文地址:https://www.cnblogs.com/skyvalley/p/13818240.html
Copyright © 2020-2023  润新知