这个功课是为了下一篇数据结构开篇做准备的,因为数据结构里面会涉及到比较,所以自己先复习总结了一下这三个比较的区别.
1. ==
==主要是对两个变量的值进行比较,比如
int a=1;
int b=2;
int c=2;
System.out.println((a==b)?"a=b":"a!=b");
System.out.println((c==b)?"c=b":"c!=b");
一般用于八种基本数据类型的比较(boolean、byte、char、short、int、float、double、long)。
当硬要让==字符串进行比较的时候,它比较的是地址,即使字符串相同,但是地址不同,也是不相等。例子稍后总体给出。
2.equals
使用对对象的内容进行比较,一般用于字符串内容的比较。
当字符串内容相同但是地址不同时,两者还是equals。
3.compareTo
按字典顺序比较两个字符串,并且是逐个进行比较,返回的是第一个不相同位置字母ASCII码顺序的差值。简单小程序模拟结果:
public static void main(String args[]){
int a=1;
int b=2;
int c=2;
System.out.println((a==b)?"a=b":"a!=b");
System.out.println((c==b)?"c=b":"c!=b");
String s1=new String("howisa");
String s2=new String("howisa");
System.out.println((s1.equals(s2))?1:2);
System.out.println((s1==(s2))?1:2);
String s3=new String("hawisa");
System.out.println(s3.compareTo(s2));
}
程序编译结果:
a!=b
c=b
1
2
-14