今天实战敲代码的时候发现代码运行结果和我想的不一样,我用debug调试的时候发现代码没按我想的步骤走,找到源头后,依稀记起了之前学过==和equal不一样,在这里总结一下。
==
1.可以用来比较int,float,char…等基本数据类型
2.还可以用来比较两个new出对象是否相等(是否指向同一位置)
3.不能用来比较string的值是否相等,因为string是一个类,想想创建string是咋创建的就晓得了。
equals()
1.这个函数是从object类里面继承下来的,object不懂是啥的请离开这里。
2.equals内部也是用的==,但是string,data,file重写了这个方法,用来比较对象内部的内容是否相等。
3.对于其他类的对象,equals和==的作用一样,都是比较的地址是否相等。
4.如果我们需要equal比较对象内部的内容是否相等,我们可以重写equal。
然后!=和!equals差别你自己就能想出来了
当比较Integer时,在-128~127范围内,比较的是两个对象的值。
超过这个范围的话比较的是地址。因为Integer内部有个默认的缓存。
补充
一. toString() {属于object类}
1.toString()方法是将调用该方法的内容转化为字符串,但是返回值为一堆没用的东西,需要用这个函数的话需要覆盖一下。