Java:compare、compareTo

我们知道8个基本数据类型都有其对应的包装类,这里就不一一介绍了,我们主要分析compare和compareTo这两个方法。接下来一一演示:

1.Byte:

Byte m=2;
Byte n=6;
System.out.println(Byte.compare(m ,n));//-4
System.out.println((m.compareTo(n)));//-4 

2.Short:

Short m=2;
Short n=6;
System.out.println(Short.compare(m ,n));//-4
System.out.println((m.compareTo(n)));//-4 

3.Character:

Character m=2;
Character n=6;
System.out.println(Character.compare(m ,n));//-4
System.out.println((m.compareTo(n)));//-4 

4.Integer:

Integer m=2;
Integer n=6;
System.out.println(Integer.compare(m ,n));//-1
System.out.println((m.compareTo(n)));//-1 

5.Long

Long m=2L;
Long n=6L;
System.out.println(Long.compare(m ,n));//-1
System.out.println((m.compareTo(n)));//-1 

6.Float:

Float m=2F;
Float n=6F;
System.out.println(Float.compare(m ,n));//-1
System.out.println((m.compareTo(n)));//-1 

7.Double:

Double m=2D;
Double n=6D;
System.out.println(Double.compare(m ,n));//-1
System.out.println((m.compareTo(n)));//-1  

8.Boolean:

Boolean m=false;
Boolean n=true;
System.out.println(Boolean.compare(m ,n));//-1
System.out.println((m.compareTo(n)));//-1 
Boolean m=false;
Boolean n=false;
System.out.println(Boolean.compare(m ,n));//0
System.out.println((m.compareTo(n)));//0
Boolean m=true;
Boolean n=true;
System.out.println(Boolean.compare(m ,n));//0
System.out.println((m.compareTo(n)));//0
Boolean m=true;
Boolean n=false;
System.out.println(Boolean.compare(m ,n));//1
System.out.println((m.compareTo(n)));//1

由上面演示结果可有以下结论:

1.Byte、Short、Character它们的比较结果为前后两者的差值,若为负数,则表明:前者<后者;若为正数,则表明:前者>后者;若为0,则表明:前者==后者。

2.Integer、Long、Float、Double它们的比较结果为-1,0,1。若为-1,则表明:前者<后者;若为1,则表明:前者>后者;若为0,则表明:前者==后者。

3.Boolean它的比较结果为-1,0,1。若为-1,则表明:前者为false,后者为true;若为1,则表明:前者为true,后者为false;若为0,则表明:前者和后者都为true或者false。

注:

Byte 、 Short 、 Integer、Long 其中内部都有缓存(内部已经定义好的数组并已经赋值了) ,具体缓存数值为: -128 ~ 127 之间。

Integer 是可以通过 配置文件 来修改默认的 缓存 范围的。


版权声明:本文为weixin_48493408原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。