浏览 1724 次
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-05
引用 String str = "abc"
那这个字符串建立过程是什么样的,用如下代码 引用 String str = new String("abc") 又是什么样的过程呢?回答之前先考虑下鸡生蛋,蛋生鸡,我想知道的是虚拟机怎么去实现的?
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-07-05
freemanxm84 写道 在java中,声明一个对象一般都用,new关键字调用构造函数或利用静态工厂方法。我有一个问题String对象,声明一个对象并初始化时一般是这样
引用 String str = "abc"
那这个字符串建立过程是什么样的,用如下代码 引用 String str = new String("abc") 又是什么样的过程呢?回答之前先考虑下鸡生蛋,蛋生鸡,我想知道的是虚拟机怎么去实现的?引用 String str = new String("abc")
实质上生成了2个字符串,都是“abc”。 |
|
返回顶楼 | |
发表时间:2007-07-05
i_love_sc 写道 引用 String str = new String("abc")
实质上生成了2个字符串,都是“abc”。 这个我知道,我问的不是这个问题。 |
|
返回顶楼 | |
发表时间:2007-07-05
简单来讲,字面量会被JVM拘留在一个内部维护的常量表中,以后再遇到字面量的字符串指向的将是heap中的同一个字符串对象,而通过new String方法得到的是字符串的拷贝,可以通过intern()方法将该拷贝拘留,此时就指向同一个对象了。
|
|
返回顶楼 | |