- 0
- 0
- 约9.22千字
- 约 8页
- 2018-04-28 发布于贵州
- 举报
JAVA面试题解惑系列(二)——到底创建了几个String对象?62
JAVA面试题解惑系列(二)——到底创建了几个String对象?我们首先来看一段代码:
Java代码
String?str=new?String(abc);??
String str=new String(abc);
紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?相信大家对这道题并不陌生,答案也是众所周知的,2个。接下来我们就从这道题展开,一起回顾一下与创建String对象相关的一些JAVA知识。 我们可以把上面这行代码分成String str、=、abc和new String()四部分来看待。String str只是定义了一个名为str的String类型的变量,因此它并没有创建对象;=是对变量str进行初始化,将某个对象的引用(或者叫句柄)赋值给它,显然也没有创建对象;现在只剩下new String(abc)了。那么,new String(abc)为什么又能被看成abc和new String()呢?我们来看一下被我们调用了的String的构造器:
Java代码
public?String(String?original)?{ ??
????//other?code?... ??
}??
public String(String original) {
//other code ...
}
大家都知道,我们常用的创建一个类的实
原创力文档

文档评论(0)