数据比较
浮点数比较
1.使用运算符比较两个浮点数,仅当表示这两个数的所有二进制位都相等时,他们才相等。如果进行比较的这两个值是计算后的结果,那么即使这两个值可能非常接近,也未必刚好相等。所以,比较浮点数时,应该尽量少用相等运算符()。
2.检查两个浮点数是否相等的更好方法是,计算两个差值的绝对值,再与公差进行比较。
字符比较
Java中的字符是基于Unicode字符集的,这个字符集定义了所有可用字符的顺序。
对象比较
1.不能使用相等或关系运算符对String对象进行比较。String类中有一个方法equals,如果相比较的两个字符串含有完全相同的字符,则这个方法返回布尔值真,否则返回假。
2.检测(name1name2)这个条件是正确的,但实际上它检测的是两个引用变量是否指向一个String对象。
3.对于任何对象来说,运算符只测试两个引用变量是否互为别名(它们是否包含相同的地址)
4.compareTo方法不会返回布尔值,而是返回一个整形量。
5.如果一个字符串是一个更长字符串的前缀,则短字符串优先于长字符串。
迭代器
1.迭代器是一个对象,可以使用它的一些方法每次处理集合中的一个元素。
2.每个迭代器对象都有一个方法hasNext,它返回一个布尔值,指出是否还有待处理的下一项。所以在处理每一个数据项时,可以使用hasNext方法作为循环的控制条件。迭代器对象还有另一个方法next,它能获取集合中的下一个数据项。
一些体会
这几天接触了Java里面的一些新的方法,了解了一些使用时需要注意的细节。对于编程过程中遇到的问题,自己也从网络上查询了一些额外的处理方法,记录如下:
1.switch语句执行时首先计算表达式的值,且表达式结果只能是char、byte、short或int类型。不能使布尔类型、浮点类型或是String类型。case的值只能是常量,它不能是变量或其他表达式。
2.Java中不能用"while(1)"实现无限循环(int无法转换成Boolean),要用"while(true)"。
3.Java中的字符串不是以'\o'结尾(与c语言不同),可以用str.length()方法返回的长度来判断字符串是否到达结尾。
4.要读取输入的下一个字符,可以将.nextLine()和charAt(0)结合使用达到目的。