Java String字符串对象的创建及管理 - 编程入门网
,才说String类型是不可变的(immutable)。
2.String类有一个特殊的创建方法,就是使用""双引号来创建.例如new String("i am")实际创建了2个String对象,一个是"i am"通过""双引号创建的,另一个是通过new创建的.只不过他们创建的时期不同, 一个是编译期,一个是运行期! 3.java对String类型重载了+操作符,可以直接使用+对两个字符串进行连接。 4.运行期调用String类的intern()方法可以向String Pool中动态添加对象。 String的创建方法一般有如下几种 1.直接使用""引号创建; 2.使用new String()创建; 3.使用new String("someString")创建以及其他的一些重载构造函数创建; 4.使用重载的字符串连接操作符+创建。 例1
例2
例3 Java String字符串对象的创建及管理(3)时间:2011-01-03 whutfirefox例4
例5 这个是The Java Language Specification中3.10.5节的例子,有了上面的说明,这个应该不难理解了
输出结果为true true true true false true,请自行分析! 结果上面分析,总结如下: 1.单独使用""引号创建的字符串都是常量,编译期就已经确定存储到String Pool中; 2.使用new String("")创建的对象会存储到heap中,是运行期新创建的; 3.使用只包含常量的字符串连接符如"aa" + "aa"创建的也是常量,编译期就能确定,已经确定存储到String Pool中; 4.使用包含变量的字符串连接符如"aa" + s1创建的对象是运行期才创建的,存储在heap中; 5.使用"aa" + s1以及new String("aa" + s1)形式创建的对象是否加入到String Pool中我不太确定,可能是必须调用intern()方法才会加入。 还有几个经常考的面 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |