黑马程序员技术交流社区

标题: API [打印本页]

作者: 马文丽    时间: 2016-10-3 19:13
标题: API
刚做了API的测试,想问问String s1 = "ab";String s3 = s1 + "c";创建了几个对象?
作者: 某某帅    时间: 2016-10-3 19:29
3个吧   s1 一个 s3 一个  c一个
作者: 醉醒    时间: 2016-10-3 20:42
String s1 = "ab";            //创建一个
String s3 = s1 + "c";  //创建了两个
作者: 112345666    时间: 2016-10-3 21:43
只有两个啊,老师讲过的,一个是new出来的,放在常量池里
作者: markiyangliu    时间: 2016-10-3 21:44
我也觉得两个吧?
作者: 三人壹大    时间: 2016-10-3 23:01
我也觉的就创建了S1和S3 两个引用.
作者: yu244934256    时间: 2016-10-4 02:38
ab,c,abc一共3个对象
作者: 愿望变美    时间: 2016-10-6 10:19
本帖最后由 愿望变美 于 2016-10-6 10:27 编辑

第一句一个,在常良池里。第二句三个,把s1转成StringBuilder对象,常量"c",会在字符串常量池(在方法区里)里面创建一个String对象,最后的时候,这句话在源代码内部会new String(),所以在堆内存里面,还有一个String对象,这些可以在eclipse的调试过程中进入源代码查看知道,所以总共四个
作者: 左丘无烈    时间: 2016-10-6 10:21
两个(^^)/
作者: 荔荔舟    时间: 2016-10-6 10:36
是四个




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