黑马程序员技术交流社区

标题: string类创建字符串对象的一个问题 [打印本页]

作者: 紫衣侯    时间: 2013-6-2 22:51
标题: string类创建字符串对象的一个问题
string a = “hello”+“java” + “我爱你”;
这句话到底创建了几个字符串对象?  以前认为是创建了四个“hello”  “java” “我爱你”和“hellojava我爱你”,但现在又见到一种说法说是只有一个对象那就是“hellojava我爱你”, 不知道这个问题大家都是怎么看的?
作者: 火之意志    时间: 2013-6-2 23:16
这个过程是创建了5个字符串对象,首先字符串是在方法区中的常量池中的,在常量池中的字符串对象时唯一的,不会重复创建,假如有“hello”这个字符串了,后面再有语句要创建字符串“hello”的,就不会在常量池中在创建新的字符串对象“hello”,而是把已有的“hello”赋给新的对象引用,假如常量池中没有这个字符串,会自动创建一个该字符串对象,string a = “hello”+“java” + “我爱你”;这句话中,先创建3个字符串“hello”,“java”,“我爱你”,然后他们组合成“hellojava”,然后再组合成“hellojava我爱你”这个字符串对象,他们进行地址上的连接,但是原来的字符串对象还是存在的,假如你想再创建一个字符串对象,“hello”同样是用常量池中已有的字符串“hello”。
作者: 袁梦希    时间: 2013-6-12 18:33
楼主你好  如果问题已经解决  请把帖子的类型改为已解决  然后会给你发几个粽子吃




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2