Java的两种数据类型,primitive,referance.请指教! Java的两种数据类型,primitive,referance到底值什么样的。什么样的是referance型的?还有"=="和"equals"各比较什么类型的,老分不清楚,能分类说明一下吗?谢谢各位了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 primitive是指基础型别,reference是指对象的引用:)---------------------------------------------------------------------------- 比较方式 | 基础型别 | 对象 |---------------------------------------------------------------------------- == | 比较值是否相等 | 比较两个引用是否指向同一实例(堆) |---------------------------------------------------------------------------- equals | 不能比较 | 比较两个对象的实例中忧关相等性的属性是否相等|----------------------------------------------------------------------------对象之间的比较涉及到很多内容,比如equals的实现等,推荐新手去看《Practical Java》,一定会给你带来很大的帮助:) 楼上的说的真清楚!对于对象的话== 就是说你定义的变量的值是不是相同(这个变量的值其实是指向实例化于堆中的对象的)比如说Character char1 = new Character('c');这个char1中存的是new Character('c')这个对象的地址,如果 Character char2 = new Character('c') ,那么char2.equals(char1)的结果将是true而char2==char1的结果是fales. 但是Character char3 =char1;的话,char3==char1就是true.因为他们指向的是同一个对象(地址相同).equlas只管对象的内容.内容相同就为TRUR.这个是楼上的唐僧版.:) 1,除了byte,boolean,short,int,long,double,float 其他都是reference的2,==是比较对象是否是同一个。比如你老爸叫你儿子,你老板叫你小星,呵呵,==就是比较这个儿子是不是小星。明白了 equals是可以被覆盖重写的,要根据具体情况来说,一般是比较是否含有相同的状态。 楼上的说的很清楚了,我再补充一下:==和!=操作符比较的是对象的引用(基本类型除外), equals()比较的是对象的内容。不过这里要注意:equals()的缺省行为也是拿refrences来比较。所以你自己新建立的类,要覆写equals()。Java标准库中的大多数class都覆写了equals()。 java调用本地exe程序,exe程序要求输入一些信息如何做到? ----------------------->System.in.read()请教<------------------------ 求助一种递归实现 记得看到过一个解释,说的是calendar的month为什当初设计的是0-11,有人记得吗 错误 高手赐教~~~ 请问我这申请的是域名加空间还是单空间? 文件上传问题 重金急求原程序:中文问题!!!! 为何我所有的JAVA程序都无法通过编译? readint()与readutf()问题,急 物业管理,大家给个思路吧(up有分,分不够在补!)
----------------------------------------------------------------------------
比较方式 | 基础型别 | 对象 |
----------------------------------------------------------------------------
== | 比较值是否相等 | 比较两个引用是否指向同一实例(堆) |
----------------------------------------------------------------------------
equals | 不能比较 | 比较两个对象的实例中忧关相等性的属性是否相等|
----------------------------------------------------------------------------
对象之间的比较涉及到很多内容,比如equals的实现等,推荐新手去看《Practical Java》,一定会给你带来很大的帮助:)
对于对象的话== 就是说你定义的变量的值是不是相同(这个变量的值其实是指向实例化于堆中的
对象的)比如说Character char1 = new Character('c');这个char1中存的是new Character('c')
这个对象的地址,如果 Character char2 = new Character('c') ,那么char2.equals(char1)的结果
将是true而char2==char1的结果是fales. 但是Character char3 =char1;的话,char3==char1就是
true.因为他们指向的是同一个对象(地址相同).equlas只管对象的内容.内容相同就为TRUR.
这个是楼上的唐僧版.:)
2,==是比较对象是否是同一个。比如你老爸叫你儿子,你老板叫你小星,呵呵,==就是比较这个儿子是不是小星。明白了
equals是可以被覆盖重写的,要根据具体情况来说,一般是比较是否含有相同的状态。
equals()的缺省行为也是拿refrences来比较。所以你自己新建立的类,要覆写equals()。Java标准库中的大多数class都覆写了equals()。