JAVA面试中,String常量池中创建了多少个对象实例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计805个文字,预计阅读时间需要4分钟。
面试官Q1:请问`String s=new String(xyz);`产生了几个对象?
对于这个Java面试题,老套路先上代码:
javapublic class StringTest { public static void main(String[] args) { String s1=Hello; String s2=Hello; String s3=new String(xyz); }}
分析:- `s1`和`s2`都是指向`Hello`这个字符串常量池中的引用。- `s3`是通过`new`关键字创建的,它会在堆内存中生成一个新的`String`对象,并复制`xyz`的值到这个新对象中。
所以,这段代码产生了3个对象:两个`String`对象(`s1`和`s2`指向同一个对象)和一个新的`String`对象(`s3`)。
本文共计805个文字,预计阅读时间需要4分钟。
面试官Q1:请问`String s=new String(xyz);`产生了几个对象?
对于这个Java面试题,老套路先上代码:
javapublic class StringTest { public static void main(String[] args) { String s1=Hello; String s2=Hello; String s3=new String(xyz); }}
分析:- `s1`和`s2`都是指向`Hello`这个字符串常量池中的引用。- `s3`是通过`new`关键字创建的,它会在堆内存中生成一个新的`String`对象,并复制`xyz`的值到这个新对象中。
所以,这段代码产生了3个对象:两个`String`对象(`s1`和`s2`指向同一个对象)和一个新的`String`对象(`s3`)。

