Java中的堆内存和字符串常量池有什么区别?
堆内存
- 堆内存是运行时数据区,所有Java类实例和数组的内存都从此处分配。
- JVM启动时创建堆,应用程序运行期间堆的大小可能会增加或减小。
- 可以使用–Xms VM选项指定堆的大小。根据垃圾收集策略,堆可以是固定大小或可变大小。可以使用–Xmx选项设置最大堆大小。
- 默认情况下,最大堆大小设置为64 MB。
字符串常量池
- String 使用特殊的内存位置来重用String对象,称为字符串常量池。
- 不使用new关键字创建的String对象存储在堆的字符串常量池部分。
- 字符串常量池的一个重要特性是,如果池中已存在相同的String常量,则不会创建相同的String对象。
广告