3.比较运算符
比较运算符可以对两个操作数进行比较,返回值为布尔型,即true或false。比较运算符主要分为6种:>、=。比较操作符基本上只能用于比较基本数据类型,比较操作符比较的是数值的二进制,这里有个要注意的地方就是小数默认是以double的形式存的,如果是比较二进制的话0.3f==0.3,这个语句的返回值是false,因为0.3的二进制数是无穷无尽的
进制转换
0.3(十进制) = 0.0100110011001100(二进制)
超出计算精度,结果保留十六位小数
0.5(十进制) = 0.1(二进制)
而0.3f是float类型长度为32位,double为64位,0.3f的二进制与0.3的二进制不一样(精度被截断了),而0.5是可以除尽的,所以二进制是一样的。
程序验证:
0.3f与0.3的判断
当然,只有1除以2的n次方才会整除,所以以此来判断精度是不是会被截断。
比较操作符还有一点要注意的是==和!=(其他的不行!)是可以来判断引用类型是否相同的
字符的比较
图中s1和s2存在的是同一个地址里,s3是new了一个新的地址,所以比较其实是比较引用的地址是否相等,所以在比较的时候我们可以看到s1和s2的引用是相等的,s3与其他的引用是不同的地址。