鱼C论坛

 找回密码
 立即注册
查看: 2801|回复: 0

关于DataSegment的一些知识

[复制链接]
发表于 2011-10-10 17:13:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 菜得要自杀 于 2011-10-10 17:19 编辑

今天看别人在群里问了一个问题:
String s ="Hello World";
String s = new String("Hello World");
这两条语句分有什么区别呢,每条语句会创建几个对象呢。

我突然想起以前马士兵讲的DataSegment存放常量,所有字符串常量。。静态变量,都在里面放着。。

于是我想,"Hello World"是一个常量

第一条语句在栈内存

里有一个s,s的值指向数据区(DataSegment)的 HelloWorld 对象,所以有一个对象

而第二句代码,因为有了一个NEW,,所以栈内存有一个S,指向堆的一片空间,堆空间的指针又指向数据区的HelloWorld,所以有两个对象

不知道对不对...欢迎指正。。

由于DataSegment是不可重复的,所以,你不管写多少个常量HelloWorld,他们都是一个对象。。。
未命名.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 12:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表