摘要:
在 Java 6 中,我们唯一可以做的优化就是通过增加 PermGen 内存空间来提供更多的存储。 可以通过在 JVM 中使用参数来实现: -XX:MaxPermSize=1G 从 Java 7 开始,我们可以为 String Pool 指定更多的参数来扩展和减少 String Pool 的大小。 阅读全文
摘要:
手工修改引用的意思就是通过程序来手工修改 String 字符串使用的指针来获得我们需要的值。 手工修改指针的方法为 intern()。 手工修改 String 在 String 存储池中的引用,JVM 将会在我们需要的时候返回这个引用。 让我们来创建一个测试用例: String constantSt 阅读全文
摘要:
当我们创建 String 对象的时候,如果使用 new() 的方式来创建一个 String 对象,JVM 将会每次都会在 heap 内存中为我们创建的 String 对象开辟一个存储空间来进行存储。 但是,如果我们使用赋值方式创建 String 对象的话,JVM 首先将会对我们赋的值到 String 阅读全文
摘要:
因为构造 String 对象有几种不同的方法,我们可以通过直接赋值的方式构造 String 对象,我们也可以通过 new 的方式来构造一个 String 对象。 在这里我们需要说说如果使用 new 这个关键字来构造的 String对象。 简单来说,如果你使用了 new 这个关键字来构造 String 阅读全文
摘要:
我们都知道 Strings 在 Java 中是不可变的( immutable),因此 JVM 可以通过访问这个字符串的引用,或者我们可以借用指针的这个概念来访问 String 字符串。 通过指针访问字符串值的这个过程就可以称为引用(interning)。 当我们在内存中创建一个字符串的时候,JVM 阅读全文