|
|
1
7
将首先在字符串常量池中查找字符串“test”。如果找到s,则将使其引用找到的对象。如果找不到,将创建一个新的字符串对象,将其添加到池中,并使s引用新创建的对象。
将首先创建一个新的字符串对象,并使S引用它。此外,在字符串常量池中为字符串“test”创建一个条目, 如果 它还没有在那里。 所以假设字符串“test”不在池中,第一个声明将创建一个对象,而第二个声明将创建两个对象。 |
|
2
5
在记忆方面的不同在于形式的表达:
表单调用:
|
|
|
3
1
string s=“test”;//创建一个字符串对象和一个引用变量 在这个简单的例子中,“测试”将进入池中,S将引用它。 string s=new string(“test”);//创建两个对象和一个引用变量 在这种情况下,因为我们使用了new关键字,Java将创建一个新的字符串对象 在正常(非池)内存中,S将引用它。此外,文本“test”将 放在游泳池里。 但它们的共同点是,它们都创建了一个新的字符串对象, “test”的值,并将其赋给参考变量s。 |
|
|
4
0
首先,将在字符串池中搜索字符串文字“test”,如果它存在,则S将引用它,不会创建新的字符串池。并且仅当“test”文本不存在时才创建新对象。 但在第二种情况下,它将创建另一个对象,而不必担心它是否存在。 |
|
|
5
0
+创建一个新的字符串对象和创建引用之间的区别并不是什么,但我们告诉JVM创建一个新的对象。 创造参照意味着我们只创造我们自己的对象。 |