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 nio 文件写入 窗口关闭按钮 触发 诸位有写代码,抄代码搞得头晕眼花,手累的时候么? 高手们帮帮忙啊!!感激不尽啊 File是如何访问硬盘的 大家手上现在都在做什么项目,讲来听听,涨涨见识,进来有分喽 java中的管道和线程问题,大虾来帮忙啊:) 简单问题? JB的一个按钮不响应问题,大家帮忙看看...送分 (附JB原代码) 帮忙翻译一下,谢了! 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()。