楼主: silver_xie

[SCJP] 很短很简单,到底有几个String Object 被created了?(基本放弃)

[复制链接]
论坛徽章:
53
2010新春纪念徽章
日期:2010-03-01 11:19:062012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25版主1段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
11#
发表于 2008-2-14 10:20 | 只看该作者
那它就是认为字符串常量池中的不算?

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:牛
日期:2008-09-25 19:22:372009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:狗
日期:2009-01-14 14:14:37
12#
发表于 2008-2-14 10:25 | 只看该作者
理论上说现在的编译器已经把这个过程优化了,即我们可以理解为是在pool中创建了String常量,但实际像这样的带有串接符号的过程被优化过了,就不会实际产生对象。

使用道具 举报

回复
论坛徽章:
8
开发板块每日发贴之星
日期:2007-12-23 01:06:08开发板块每日发贴之星
日期:2007-12-24 01:05:56开发板块每日发贴之星
日期:2007-12-27 01:05:492008新春纪念徽章
日期:2008-02-13 12:43:03开发板块每日发贴之星
日期:2008-02-14 01:02:08开发板块每日发贴之星
日期:2008-02-15 01:05:13开发板块每日发贴之星
日期:2008-02-16 01:06:48开发板块每日发贴之星
日期:2008-02-17 01:05:20
13#
 楼主| 发表于 2008-2-14 10:28 | 只看该作者
我做每一题,都是严格找到书中的概念的。。。。。所以哦。。。按照我摘录出来的内容,应该是5个,但是如果我不计算lost的话,是1个。。。。sinkler你提到的优化问题,是哪里提及的呢?我没有看到这部分,

如果按照study guide的说法,5个的话就是包括所有的objects,或者就是,被gc回收了,只有1个了
String s = “Fred”;  create "Fred"
13. s = s + “47”;   create "Fred47" "47"but lost "Fred" and "47" now total Object is 1
14. s = s.substring(2, 5); create "ed4" lost "Fred47"
15. s = s.toUpperCase(); create "ED4" lost "ed4"
结果是创建了5个,丢了4个

ps:toString()有没有建立一个Object???

你们提到的优化技术哪里提到呢?

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:牛
日期:2008-09-25 19:22:372009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:狗
日期:2009-01-14 14:14:37
14#
发表于 2008-2-14 10:34 | 只看该作者

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:牛
日期:2008-09-25 19:22:372009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:狗
日期:2009-01-14 14:14:37
15#
发表于 2008-2-14 10:34 | 只看该作者
公说公有理,婆说婆有理

使用道具 举报

回复
论坛徽章:
8
开发板块每日发贴之星
日期:2007-12-23 01:06:08开发板块每日发贴之星
日期:2007-12-24 01:05:56开发板块每日发贴之星
日期:2007-12-27 01:05:492008新春纪念徽章
日期:2008-02-13 12:43:03开发板块每日发贴之星
日期:2008-02-14 01:02:08开发板块每日发贴之星
日期:2008-02-15 01:05:13开发板块每日发贴之星
日期:2008-02-16 01:06:48开发板块每日发贴之星
日期:2008-02-17 01:05:20
16#
 楼主| 发表于 2008-2-14 10:39 | 只看该作者
scjp5都没提到阿。。。怪异。。让人家怎么考试阿。。。。不过兄台说的有道理,这样的题估计也被优化拉。。呵呵,碰上就算倒霉。。。。

你给的文档上也没有说是java版本几。。。。。现在6都出来了粉久了。。。

刊发表时间是2006年,5已经出来了,那就相信他把,呵呵

只是我一直相信study guide的方法名做题思路也是按照study guide的举例。。。。还真郁闷了。。

constants pool和heap....的区别,我的理解是

用new String();的时候就是写入了两个Objects,一个在constants pool中,一个在heap中
但是用String s="xx";只有constants pool中有一个。。。

这道题不涉及heap阿。。。。

使用道具 举报

回复
论坛徽章:
8
开发板块每日发贴之星
日期:2007-12-23 01:06:08开发板块每日发贴之星
日期:2007-12-24 01:05:56开发板块每日发贴之星
日期:2007-12-27 01:05:492008新春纪念徽章
日期:2008-02-13 12:43:03开发板块每日发贴之星
日期:2008-02-14 01:02:08开发板块每日发贴之星
日期:2008-02-15 01:05:13开发板块每日发贴之星
日期:2008-02-16 01:06:48开发板块每日发贴之星
日期:2008-02-17 01:05:20
17#
 楼主| 发表于 2008-2-14 10:41 | 只看该作者

你给的资料

String s = new String("abc");创建了几个String Object?
很明显2个///呵呵,这样出题就爽多了,啊哈

使用道具 举报

回复
论坛徽章:
8
开发板块每日发贴之星
日期:2007-12-23 01:06:08开发板块每日发贴之星
日期:2007-12-24 01:05:56开发板块每日发贴之星
日期:2007-12-27 01:05:492008新春纪念徽章
日期:2008-02-13 12:43:03开发板块每日发贴之星
日期:2008-02-14 01:02:08开发板块每日发贴之星
日期:2008-02-15 01:05:13开发板块每日发贴之星
日期:2008-02-16 01:06:48开发板块每日发贴之星
日期:2008-02-17 01:05:20
18#
 楼主| 发表于 2008-2-14 10:45 | 只看该作者

一个灰常有用的信息,啊哈哈

饮用:在我仍然不知道怎么回答str = 1+2+str+3+4;创建了多少String的对象.
    或许,这个问题不需要过于研究,至少SCJP不会考它。

按照这位仁兄说的,就不考了。。。。java也没有一个方法不检验。。。

使用道具 举报

回复
论坛徽章:
8
开发板块每日发贴之星
日期:2007-12-23 01:06:08开发板块每日发贴之星
日期:2007-12-24 01:05:56开发板块每日发贴之星
日期:2007-12-27 01:05:492008新春纪念徽章
日期:2008-02-13 12:43:03开发板块每日发贴之星
日期:2008-02-14 01:02:08开发板块每日发贴之星
日期:2008-02-15 01:05:13开发板块每日发贴之星
日期:2008-02-16 01:06:48开发板块每日发贴之星
日期:2008-02-17 01:05:20
19#
 楼主| 发表于 2008-2-14 10:47 | 只看该作者
对于String str2 ="3"+"jf"+"3"+"4";我们说仅仅创建一个对象。
    注意,“创建多少对象”的讨论是说运行时创建多少对象。

    BTW:编译时优化

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:牛
日期:2008-09-25 19:22:372009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:狗
日期:2009-01-14 14:14:37
20#
发表于 2008-2-14 10:48 | 只看该作者
这道题经典的很,经典的各大论坛版主都把这个题封了,不做解释

里面涉及的内容很杂,因为String的问题跟普通其他类的问题不一样,所以解释起来也麻烦,本来Java是想将String优化一下,所以就设计出String常量池。

估计以后Sun也不会出这样的题,不同的标准有不同的解释方法。

反正按书上的理论,肯定是5个没错。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表