java中引用分配的内存一样吗 5
如果java中的引用分配的地址一样,那为什么要Animala=newAnimal();前面的Animala这个引用不是可以用通用的指针就可以了嘛?...
如果java中的引用分配的地址一样,那为什么要Animal a=new Animal();前面的Animal a这个引用不是可以用通用的指针就可以了嘛?
展开
2个回答
展开全部
不一样的,Animal a ,这里的a 相当于一个变量,里面存着一个Animal 的实体对象。
new Animal()保存在对内存中。
可以理解为a指向new Animal(),
二者的地址是不一样的。
new Animal()保存在对内存中。
可以理解为a指向new Animal(),
二者的地址是不一样的。
追问
我的理解是new Animal()是在内存中分配了空间,那么Animal a不就是一个指针指向就可以了嘛,比如16位,还为什么要分类型?
追答
不分类型到时候怎么调用?比如Animal中有eat()方法,调用的时候就可以a.eat();
要是像你说的那样直接a,那怎么吊用到eat()方法。
再比如你要网购,反正是个快递地址,为啥要填XX省市区,而不是填电子邮箱的地址啊?
因为二者都是地址,但是类型不同,功能也不一样,不能混为一谈。
希望能理解。
2015-10-20
展开全部
地址一样值又不一样,对象类型只能用equals做比较,用==比的是地址,地址是一样的所以会返回true,但是实际内容是不一样的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询