作者:手机用户2502853601 | 来源:互联网 | 2022-12-25 18:54
为什么静态方法的实现compare
的Long
,Integer
并Short
在Java中的图书馆有什么不同?
用于Long
:
public static int compare(long x, long y) {
return (x
用于Integer
:
public static int compare(int x, int y) {
return (x
用于Short
:
public static int compare(short x, short y) {
return x - y;
}
孙兴斌..
15
如果你试试:
System.out.println(Long.MIN_VALUE - Long.MAX_VALUE);
要么
System.out.println(Integer.MIN_VALUE - Integer.MAX_VALUE);
你会1
因为溢出而得到(更新:这里应该是下溢,如另一个答案所述),这是不正确的.
然而,随着
System.out.println(Short.MIN_VALUE - Short.MAX_VALUE);
您将获得正确的值-65535
,因为short
将int
在-
操作之前转换为,这可以防止溢出.
1> 孙兴斌..:
如果你试试:
System.out.println(Long.MIN_VALUE - Long.MAX_VALUE);
要么
System.out.println(Integer.MIN_VALUE - Integer.MAX_VALUE);
你会1
因为溢出而得到(更新:这里应该是下溢,如另一个答案所述),这是不正确的.
然而,随着
System.out.println(Short.MIN_VALUE - Short.MAX_VALUE);
您将获得正确的值-65535
,因为short
将int
在-
操作之前转换为,这可以防止溢出.