比较问题一道,关于 == 和cast的规则一样,不能强制转换的,就不能用== 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Float s 和 Double u是两个不同类的对象,所以是不能用==比较的。 en,你的意思是==两边的对象作比较的时候会被cast然后再比较吗?可按照我的理解 ==比较的是两个句柄的指向呀。就是 如果指向一个对象则为tureor false .继续困惑中 public class Foo{ public static void main(String [] args){ Float s=new Float(0.9F); Float t=new Float(0.9F); Double u=new Double(0.9); Float d = s; System.out.println( s==t );//比较的是两个字符串是不是指向同一个存储空间。 System.out.println( s==d );//true. System.out.println(s.equals(d));//比较的是同一类型的两个字符串的内容。 //System.out.println( s==u); // canot compile System.out.println( t.equals(u));//object isn't same. } }看看是不是对你有所帮助。 同意楼上的!你println一个对象就可以看到,对象句柄的内容是对象类型加上一个数字,如果是不同类型,它们的句柄不可能相等,所以java会先判断==两边是否是同类型对象! ==对两个指针进行比较,如果指向相同的对向返回true,否则返回false,能比较当然前提是类型一样,只有类型一样才能比较 hehe,基本上弄清楚了,==比较同类对象的句柄的指向。谢谢大家。结帐 struts2 ModelDriven枚举类型数据该怎么处理 读取文件、写文件乱码 为什么我的xml文件不是“格式良好”的? 冒泡排序 java从linux写内容到远程NT环境文本文件(怎样在局域网内跨操作系统写文件) <logic:iterate>标签 name属性的问题!! DOM解析XML问题 关于控制台重定向的输入问题 请给推荐一本java版的数据结构书? 命令行输入结束符为什么是按回车键? 昨天96%通过SCJP,好爽~散分!!! scwd??
or false .继续困惑中
public static void main(String [] args){
Float s=new Float(0.9F);
Float t=new Float(0.9F);
Double u=new Double(0.9);
Float d = s;
System.out.println( s==t );//比较的是两个字符串是不是指向同一个存储空间。
System.out.println( s==d );//true.
System.out.println(s.equals(d));//比较的是同一类型的两个字符串的内容。
//System.out.println( s==u); // canot compile
System.out.println( t.equals(u));//object isn't same.
}
}看看是不是对你有所帮助。
你println一个对象就可以看到,对象句柄的内容是对象类型加上一个数字,如果是不同类型,它们的句柄不可能相等,所以java会先判断==两边是否是同类型对象!