将创建多少个String对象?

时间:2017-06-30 13:37:44

标签: java string memory-management heap-memory

我有两个字符串问题?

//First example
{
     String s="Hello"+"world";
     String s2= "Helloworld"+" Example";
}

如何在这里创建字符串对象?

// second example
{
     String s1= new String("Cricket");
     String s2=s1;
}

创建了多少个对象以及内存的哪个部分?

1 个答案:

答案 0 :(得分:3)

第一个例子在编译时创建了两个字符串(" Helloworld"" Helloworld Example"),它们被放入字符串常量池中。初始化之后(在运行时使这些字符串可用)不会创建其他字符串对象。

第二个示例在编译时在字符串常量池(" India"" Cricket")中创建两个字符串对象,并在堆中运行时创建一个字符串对象({{ 1}})。