Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:创建String对象的问题 [Re:javahum]
scarecrow





发贴: 7
积分: 0
于 2005-12-15 11:04 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
>>先定义一个名为str的对String类的对象引用变量:String str;
这句话问题不大,就是在栈中分配一个指向String的指针变量str(和定义一个名为str的对String类的对象引用变量语义相同)

>>在栈中查找有没有存放值为"abc"的地址,
栈是存放变量的,并不能存放什么地址。所谓存放地址就是在栈中存放的指针变量用来存放的地址;

>>如果没有,则开辟一个存放字面值为"abc"的地址.
已经有一个str引用变量了,为何还要再开辟一个存放"abc"地址的存储空间?直接把str指向"abc"的地址(和str作为常量字符串的引用是一样的语义)
>> 接着创建一个新的String类的对象o
这个对象如何创建?据我所知JAVA中所有的对象实例创建都是在堆中,否则只是创建该对象的引用变量,既然有了str的引用再创建一个又有何用?

>>并将o 的字符串值指向这个地址

字符串值指向地址?听起来很矛盾啊。

>>将str指向对象o的地址。
作者似乎也明白str可以是指向地址。直接指向符合常量"abc"的地址不就ok了。为何非得弄出来个o阿。唯一的解释是"abc"不是String类型不能直接引用"abc",虚拟机内部需要通过 o= new String("abc"); 创建一个String对象的实例然后再通过str引用此实例。

至于我的结论我是根据我对C语言的理解和指针的概念得出来的,我JAVA的对象引用应该何C语言的指针类似. 。我不能确信我的结论是否正确。但是感觉作者对其的解释的很混沌不清。




话题树型展开
人气 标题 作者 字数 发贴时间
12903 创建String对象的问题 javahum 847 2005-12-11 16:58
12387 Re:创建String对象的问题 hamlet 840 2005-12-11 22:00
11592 Re:创建String对象的问题 Jcat 1013 2005-12-18 20:01
12010 Re:创建String对象的问题 Jcat 354 2005-12-18 20:10
11549 Re:创建String对象的问题 Jcat 883 2005-12-18 20:35
11285 Re:创建String对象的问题 andykid 231 2006-01-14 15:41
11697 Re:创建String对象的问题 zcjl 72 2006-01-14 16:16
11323 Re:创建String对象的问题 andykid 17 2006-01-14 17:10
11555 Re:创建String对象的问题 zxasqw 58 2005-12-11 22:21
11613 Re:创建String对象的问题 andykid 318 2005-12-12 22:58
11668 Re:创建String对象的问题 andykid 220 2005-12-12 23:03
11601 Re:创建String对象的问题 andykid 440 2005-12-12 23:11
11655 Re:创建String对象的问题 scarecrow 298 2005-12-14 16:02
11585 Re:创建String对象的问题 andykid 439 2005-12-14 23:52
11549 Re:创建String对象的问题 scarecrow 681 2005-12-15 11:04
11520 Re:创建String对象的问题 andykid 55 2005-12-16 00:01
11557 Re:创建String对象的问题 scarecrow 270 2005-12-16 10:28

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923