java中引用分配的内存一样吗 5

如果java中的引用分配的地址一样,那为什么要Animala=newAnimal();前面的Animala这个引用不是可以用通用的指针就可以了嘛?... 如果java中的引用分配的地址一样,那为什么要Animal a=new Animal();前面的Animal a这个引用不是可以用通用的指针就可以了嘛? 展开
 我来答
易建议
2015-10-20 · 喜欢分享的人都容易获得幸福感~
易建议
采纳数:344 获赞数:1342

向TA提问 私信TA
展开全部
不一样的,Animal a ,这里的a 相当于一个变量,里面存着一个Animal 的实体对象。

new Animal()保存在对内存中。

可以理解为a指向new Animal(),
二者的地址是不一样的。
追问
我的理解是new Animal()是在内存中分配了空间,那么Animal a不就是一个指针指向就可以了嘛,比如16位,还为什么要分类型?
追答
不分类型到时候怎么调用?比如Animal中有eat()方法,调用的时候就可以a.eat();
要是像你说的那样直接a,那怎么吊用到eat()方法。

再比如你要网购,反正是个快递地址,为啥要填XX省市区,而不是填电子邮箱的地址啊?
因为二者都是地址,但是类型不同,功能也不一样,不能混为一谈。
希望能理解。
匿名用户
2015-10-20
展开全部
地址一样值又不一样,对象类型只能用equals做比较,用==比的是地址,地址是一样的所以会返回true,但是实际内容是不一样的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式