String s=new String("abc");一共创建了几个对象

Posted kpsmile

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String s=new String("abc");一共创建了几个对象相关的知识,希望对你有一定的参考价值。

如果字符串常量池中不存在“abc”,该语句执行时会先在字符串常量池中创建一个“abc”对象,在执行new语句时在堆去开辟新的空间,创建“abc”字符串,同时栈区会有一个引用s指向堆区的对象,此时如果要算上栈区的引用,共创建3个对象,不算,则创建两个对象。 二:如果字符串常量池中存在“abc”,则只会在堆区创建一个“abc”字符串,同时栈区有一个引用指向堆中的对像。如果算上栈中的引用,共创建了两个对象,不算,则创建了一个对象。

 

以上是关于String s=new String("abc");一共创建了几个对象的主要内容,如果未能解决你的问题,请参考以下文章

String s=new String("abc")的引申

String s = new String("abc");在内存中有几个对象?

java中String s = new String("abc")创建了几个对象

String s=new String("abc")创建了几个对象?

String s=new String("abc");一共创建了几个对象

String s=new String("xyz");创建了几个String Object?二者之前的区别是什么?