Java学习笔记-== compare 和 equals

     这个功课是为了下一篇数据结构开篇做准备的,因为数据结构里面会涉及到比较,所以自己先复习总结了一下这三个比较的区别.

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



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