java8发布以来,对于jdk7的一些常用特性有点忽略,今天就列举一下jdk7中一些常用的方法:
1、实现equals、hashCode和compareTo方法
a、安全的null值相等测试
在java7之后,提供了Objects。equals(a,b)方法,如果a和b都是null,返回true;如果只有其中一个为null,返回false;其他情况返回a.equals(b)。从使用习惯和代码的规范性上讲,应该讲之前使用的a.equals(b)的地方更改为这种方式。
b、计算哈希码
对于null,Objects.hashCode方法会返回0。java7中引入的可变参数方法Objects.hash允许你指定任意个对象,并且它们的哈希码会被自动组合起来。
c、比较数值类型对象
当通过比较器来比较整型值时,因为允许返回任意负值或正值,所以它会试图返回二者之间相差的大小,但是实际上只需要知道符号就足够了。
在java7之后,可以使用静态方法Integer.compare来实现。过去,有开发人员会用new Integer(x).compareTo(other.x)的方式,但是这会创建两个会自动装箱/拆箱的整型对象。相比之下,静态方法compare使用的是int参数。此外,Long、Short、Byte和Boolean也都提供了各自的静态方法compare。如果你需要比较两个字符型值(char),可以直接将它们相减,结果不会溢出。Double和Float中的静态方法compare从java1.2开始就存在了。
2、全局Logger
为了鼓励在一些简单的程序中使用日志框架,Logger类现在提供了一个全局的Logger实例。因为它为了尽可能的简化使用,所以你可以在任何时候都使用Logger.global.finest("x=" + x);来代替System.out.println("x" + x);。
java7中提供了一直更简单的形式——Logger.getGlobal()。