对一句话的不理解! 求正解!~~

bxdg42578670 2008-10-28 11:04:06
在《数据结构与算法》 这本书中看到这样一句话:




java存储的是引用, 而不是实际对象!!!!







对这句话有着太多的疑问, 实在搞不太明白, 还请前辈们指点迷津!~


finnally!~ 终于把《数据结构与算法》 这本书粗略的看完了!~ 脑子里充满了太多的问好!~ 当反过来思考时, 却不知道问号 去了哪里?》。 感觉将它看完什么进步都没有!~

希望看过数据结构方面的指点迷津, 怎样将它吃透, 掌握, 并得到理解!~~ 并知道简单的应用!

例如图 在今后的实际工作中一般都是怎样的应用!`

优先级队列究竟最大的作用是什么?。 。

堆与我们java中的堆 究竟有多大的关系, 及原因为何这样设计?。。。

问题可能现在想不起来几个了!~ 烦请过来人给予更多的补充!~ 谢谢!~~
...全文
579 49 打赏 收藏 转发到动态 举报
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouyu5241 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 roma007 的回复:]
所谓对象,是真实存放数据 。而引用 ,是存放对象的内存地址
,JAVA中都是通过引用来操作对象,而没有实际的操作对象。
[/Quote]
顶!
getter 2008-10-29
  • 打赏
  • 举报
回复
續43樓,lz,java只傳個引用給你來對對象進行訪問,而不允許你直接對內存訪問,一個對象要有狀態,也就是對象的實例字段,如43樓所說,你還操作什麼?
duanjianbo26 2008-10-29
  • 打赏
  • 举报
回复
“java只存储引用,而不存储对象”这句话绝对有问题,如果不存储对象,那引用操作什么?java对象不是都放在堆里面吗?
huangjiang0514 2008-10-29
  • 打赏
  • 举报
回复
java存储的是引用, 而不是实际对象。引用内存地址,也就是说一个地址可以拥有多个对象,如果是世纪对象的话就只能一对一,这个也是java的好处之一吧。打个简单的比喻,在封建社会的时候婚姻法是引用,社会主义社会的话婚姻法就是实际对象,前者可以一夫多妻,后者只能一夫单妻。java的人性化就是因为可以一夫多妻···(个人体会,有错请指出)
gs840120 2008-10-29
  • 打赏
  • 举报
回复
楼主说的是值传递么?
luopowusheng 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 wanglong1615 的回复:]
哎哟 ,初学者什么都学 ,结果什么都学不好, 这是个问题,就好象有人一问学JAVA要看什么书? 有人就说Thinking in java,这完全是害人额。
学JAVA 开始的时候就别去计较些 细节,应该这不是你计较的时候。等到有时候 想知道,遇到困难的时候再去解决。
低层的东西可能八辈子子都用不着,通常做JAVA研究与JAVA开发是很大的区别的?
JAVA研究什么原理都东都明白,可做个JAVA项目简直不怎么样。
JAVA开发可能很多东西不洞,可是…
[/Quote]

似乎说着我了,一直以来对于底层的东西都是很模糊
越看越不懂,越想越糊涂
后来索性就不求甚解了
chandlersong 2008-10-29
  • 打赏
  • 举报
回复
我的理解是比方说object obj = new object();这句话。
产生一个指向新产生的对象的变量obj。和一个新的object的对象。
之后所有的操作,你能改变对象,比方说这个对象中有一个成员a,他的值是0,你可以把他变成1,或者2。但是你却没办法控制这个对象放在哪里,其所占用的空间何时被释放……等一系列问题。
但是你却可以操作obj这个变量,可以把他放到其他对象里面去。做“存储”。
对于这种基础问题,我觉得吧。有时候没必要太过较真。但是也不能一点都没有想法。
niuniu20008 2008-10-29
  • 打赏
  • 举报
回复
应该栈中存储引用变量吧
axman 2008-10-29
  • 打赏
  • 举报
回复
一群.............
wanglong1615 2008-10-28
  • 打赏
  • 举报
回复
JAVA 不有个抽象的概念嘛, 抽象是什么?
有的东西,知道就可以了,搞的很清楚不一定比知道强。 、
那要搞清楚真是累死人, 本来就是个虚东西 ,怎么搞清楚??
wanglong1615 2008-10-28
  • 打赏
  • 举报
回复
哎哟 ,初学者什么都学 ,结果什么都学不好, 这是个问题,就好象有人一问学JAVA要看什么书? 有人就说Thinking in java,这完全是害人额。
学JAVA 开始的时候就别去计较些 细节,应该这不是你计较的时候。等到有时候 想知道,遇到困难的时候再去解决。
低层的东西可能八辈子子都用不着,通常做JAVA研究与JAVA开发是很大的区别的?
JAVA研究什么原理都东都明白,可做个JAVA项目简直不怎么样。
JAVA开发可能很多东西不洞,可是通过工具,可以做出来个很好的东西。
我老师说,学JAVA 就是 刚开始 脑子是一马虎,然后就是豁然开朗,再就是自我感觉良好什么都知道,然后又是迷迷忽忽,等到迷迷忽忽的时候就是JAVA入门的时候。
忙碌的布谷鸟 2008-10-28
  • 打赏
  • 举报
回复
从c语言来说,可以将“引用”比喻成指针(地址)

由于C语言指针,可以修改,且复杂,可能出现指针溢出等。

所以Java中,将这种指针进行约束,只可以访问它,不可以随便进行修改,有效的对内存进行保护。

顺便命名为“引用”。本质上还是地址,只是操作收到一些约束罢了。


an6860 2008-10-28
  • 打赏
  • 举报
回复
再回去好好看看吧
bxdg42578670 2008-10-28
  • 打赏
  • 举报
回复




你们说的这些个我都明白, 我只是不明白这句话!~

实际对象没有被存储, 引用被存储, 究竟这个存储的概念是个什么意思?。。


实际对象同样也是被存储着啊!~~ 所以不太明白!~`


没想到的是, 大家都拿objet = new Object();来说!~ 我错了!~~



bxdg42578670 2008-10-28
  • 打赏
  • 举报
回复



这个问题大概有的一些正解了, 大家可否讨论后面的问题!~

就是对数据结构方面的应用!~

ZangXT 2008-10-28
  • 打赏
  • 举报
回复
不知道数据结构书里怎么冒出这么一句.
最基本的
Object obj = new Object();
obj就是个引用,指向在堆中的实际对象.
llddy 2008-10-28
  • 打赏
  • 举报
回复
java操作的就是引用句柄。
bxdg42578670 2008-10-28
  • 打赏
  • 举报
回复
to 12楼同志:

为什么我说的你还不明白呢?。。


人和动物有什么区别吗?。 人和动物好象没有关系吧!~

你就相当于在跟我讨论这个问题一样!~

就象要讨论 我和你有关系吗?。 我们两个只是在这里表达自己的见解!~



如果你明白, 你可以说出你理解的想法,

java就是那么存的, 就是怎么存的?。 引用存在哪里, 实际对象存在哪里?》

不要说引用存在栈里, 实际对象存储在堆里! 那你说说为何要使用栈, 堆!


我就是想问, 它为何要这样说: 只存储引用,而不存储实际对象, 它与存储实际对象的区别是什么?

怎样才能区分开来,这两种机制的不同,

我只不过想问
YL_Show 2008-10-28
  • 打赏
  • 举报
回复
没看过
KGBKGB8888 2008-10-28
  • 打赏
  • 举报
回复
可能是java需要通过方法去访问内存地址的值,而不像c可以直接操作内存
加载更多回复(29)

62,614

社区成员

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

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