对String s = new String("Hello");这句的理解有点不是很清楚

wesnow 2007-07-27 09:52:29
书上总是说s是引用,一直不明白这个引用到底是个什么玩意,对引用的说法一直感觉是很虚。我按我自己的理解说的看下,高手帮我看下对不对。
String s这句定义了一个字符串对象,s应该也是个对象吧?这个对象其实是个指向String字符串实例的指针,new String("Hello")这句实例化了一个Hello字符串实例,假设Hello字符串实例在堆中的内存地址是0x001122,那么变量s中应该存放的就是这个地址0x001122吧?
第二个问题是s是存放在堆中还是栈中?按我把s理解为一个字符串对象来说,s应该是存放在堆中,不知对不?
第三个问题是s这个对象是什么时候分配内存空间的?String s这句并没有使s在内存中分配空间吧?直到把new的字符串实例赋给s的时候,s才分配内存空间吧?

最后个问题是CSDN除了回答别人的问题得分外,还能怎么得分?我问了几个问题后就没分了,以后再有问题怎么办呢?再注册ID?
...全文
382 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
约翰羊 2007-07-27
  • 打赏
  • 举报
回复
你是人这个类的。
你的爸爸妈妈把你实例化了,
并给你取了个名字叫"wesnow"
wesnow就是引用,你就是那个wesnow指向的对象.
wesnow 2007-07-27
  • 打赏
  • 举报
回复
UP
继续召唤高手
明天来结贴
Clerk_9919 2007-07-27
  • 打赏
  • 举报
回复
String s只是说明 s是一个字符串对象的名字
Clerk_9919 2007-07-27
  • 打赏
  • 举报
回复
个人认为, 你可以把引用理解为“别名”, new String("hello") 创建了一个字符串对象,这个对象叫什么名字呢?起个名字叫s吧 String s = new String("hello");
wesnow 2007-07-27
  • 打赏
  • 举报
回复
UP
codeartisan 2007-07-27
  • 打赏
  • 举报
回复
每天登录一次,CSDN给你10分。
lixingoodspeed 2007-07-27
  • 打赏
  • 举报
回复
我认为楼主应该看看<scjp考试>的那本书,红色的

那里讲的很明了

分的问题很好办呐,你不能什么问题都问吧,关键是自己想

别人的问题你肯定也能说上几句的,说不上的话就把你自己的疑问也写上
数据娃掘 2007-07-27
  • 打赏
  • 举报
回复
看下Clerk_9919(Clerk)的解释,你可以这么理解

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧