String s= new String("hello world");这段代码中创建了2个String对象
我们先来分析一下这段代码,基本上分为四个部分来看待:
String s 只是定义了一个名为s的String变量,它没有创建对象
=是对变量s 进行初始化,将某个对象的引用(又叫句柄)赋值给它,也没有创建对象
new String("hello world"); 能被看成是 "hello world" 和String();
我们看一下String的构造:
public String(String original) { //other code ... } ;我们常用的创建一个类的实例(对象)的方法有两种
1.使用new创建对象;
2.调用Class类的newInstance方法,利用反射机制创建对象
而String显然是用第二种构造创建了一个对象,并将他的引用赋值给了s变量,同时,被调用的构造方法接收的参数也是一个String
对象,这个对象正是"hello world“,因此我们看一下引号内包含文本
http://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html 这个博客讲了
String s=new String("abc")创建了几个对象?