Java中的堆内存和字符串常量池有什么区别?


堆内存

  • 堆内存是运行时数据区,所有Java类实例和数组的内存都从此处分配。
  • JVM启动时创建堆,应用程序运行期间堆的大小可能会增加或减小。
  • 可以使用–Xms VM选项指定堆的大小。根据垃圾收集策略,堆可以是固定大小或可变大小。可以使用–Xmx选项设置最大堆大小。
  • 默认情况下,最大堆大小设置为64 MB。

字符串常量池

  • String 使用特殊的内存位置来重用String对象,称为字符串常量池。
  • 不使用new关键字创建的String对象存储在堆的字符串常量池部分。
  • 字符串常量池的一个重要特性是,如果池中已存在相同的String常量,则不会创建相同的String对象。

更新于:2020年2月6日

5K+ 浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告