Java新的String和StringBuilder在堆中的行为

瑞安
  1. 字符串池是否驻留在堆上?如果是,那么字符串文字是否有资格进行垃圾回收?

使用时new String("abc"),我们知道它会在堆上创建一个对象,并将String文字放置在String池中。所以我的第二个问题是:

  1. 是否new StringBuilder("abc")表现方法一样new String("abc")如果是,那么StringBuilder如何处理字符串池中的字符串文字?
马克·托波尼克(Marko Topolnik)

您会混淆编译时间,加载时间和运行时。

在类加载时,将字符串文字添加到常量池中。只需在类代码中的任何地方提及文字即可;您甚至不必在该类中执行任何代码行。

另一方面,表达式new String("literal")String每次被求值时都会产生一个新实例。该实例不同于常量池中的实例,并且具有字符串值的副本。

StringBuilderString在这方面的行为与之完全相同:它是使用字符串文字值的副本进行初始化的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用StringBuffer,StringBuilder和String.intern()通过String优化Java堆使用

来自分类Dev

java String和StringBuilder

来自分类Dev

在Java中equal和==行为

来自分类Dev

Java堆和堆栈

来自分类Dev

JavaScript堆算法中for循环的奇怪行为

来自分类Dev

Java 7和8中的32位堆优化

来自分类Dev

字符串-Java中的堆栈和堆

来自分类Dev

Java中String.value0f和Character.toString之间的不同行为

来自分类Dev

Java中的wait()和notifyAll()行为?

来自分类Dev

Java中的对象分配和GC行为

来自分类Dev

追加到stringBuilder时出现Java堆错误

来自分类Dev

Java堆空间和RAM

来自分类Dev

Java堆空间和RAM

来自分类Dev

Java:通过使用自定义类避免StringBuilder.toString()创建新的String

来自分类Dev

如何找到编号。java堆和String文字池中创建的String对象的集合

来自分类Dev

StringBuilder是否在每个操作中创建一个新的String?

来自分类Dev

StringBuilder 中 append 的参数是一个新的 String 对象,它会被垃圾收集吗?

来自分类Dev

getDeclaredMethods()在Java 7和Java 8中的行为不同

来自分类Dev

在Java 8中,用于合并的'+'运算符由新的StringBuilder()代替

来自分类Dev

如何查看Java的堆和非堆内存使用遥测

来自分类Dev

如何查看Java的堆和非堆内存使用遥测

来自分类Dev

String和StringBuilder消耗的内存是重复的

来自分类Dev

StringBuilder和string.IsIntern方法

来自分类Dev

Haskell中的新类型行为

来自分类Dev

BigQuery中的错误或新行为?

来自分类Dev

Java 6中的权限和File.renameTo奇怪的行为

来自分类Dev

Java中的增量前和增量后行为

来自分类Dev

java中如何解耦数据和行为对象?

来自分类Dev

编写巨大的文件和Java堆空间

Related 相关文章

热门标签

归档