关系运算符与包装器类

hanRivergo 2010-09-08 11:35:49
关系运算符(>=,>)与包装器类()Wrapper是什么关系
知道==进行比较时比较的是包装器类对象引用地址,但>=,>不知道比较的是什么,且当运用==于Integer比较Double时是不能进行比较的,但>=,>,<,<=却可以。
如下:
Integer ii=new Integer(345);
Double dd=new Double(345.00);
System.out.println(ii==dd);
产生编译错误。
但如下:
Integer ii=new Integer(346);
Double dd=new Double(345.00);
System.out.println(ii>=dd);
产生好象正确的结果。
有搞不清楚。请指教。
先谢谢。
...全文
123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
licip 2010-09-08
  • 打赏
  • 举报
回复
这跟jdk里的新特性自动装箱自动拆箱有关。
hanRivergo 2010-09-08
  • 打赏
  • 举报
回复
但试一下,Integer与Long也一样。如:
Integer ii=new Integer(450);
Long ss=new Long(450);
System.out.println(ii>=ss);
whb3118 2010-09-08
  • 打赏
  • 举报
回复
Double 类型在内存中不是精确的数据,
例如,6精度的数据
Double dd = new Double(345.00);
它实际的值可能是345.000000989,
后面的值是随机的.只是保证精度范围内是正确的.
所以要是用等于,比较两个Double 类型数据基本不会相等.
就禁止使用了.

hanRivergo 2010-09-08
  • 打赏
  • 举报
回复
能不能详细点,我觉得==与其它的关系运算符在java中作用不一样,因为==有一个和Object类的equals方法相同的称呼,具体的还在研究。

62,614

社区成员

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

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