Java教程

JAVA 一些方法

本文主要是介绍JAVA 一些方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

equals 和 == 的区别

  • 首先的区别是,equals 是方法,而 == 是操作符;
  • 对于基本类型的变量来说(如 shortintlongfloatdouble),只能使用 == ,因为这些基本类型的变量没有 equals 方法。对于基本类型变量的比较,使用 == 比较, 一般比较的是它们的值
  • 对于引用类型的变量来说(例如 String 类)才有 equals 方法,因为 String 继承了 Object 类, equals 是 Object 类的通用方法。对于该类型对象的比较,默认情况下,也就是没有复写 Object 类的 equals 方法,使用 == 和 equals 比较是一样效果的,都是比较的是它们在内存中的存放地址。但是对于某些类来说,为了满足自身业务需求,可能存在 equals 方法被复写的情况,这时使用 equals 方法比较需要看具体的情况,例如 String 类,使用 equals 方法会比较它们的值
  没重写 equals
        Us u1 = new Us(1, 2);
        Us u2 = new Us(1, 2);
        System.out.println(u1 == u2);//false
        Us u3 = u1;
        System.out.println(u1 == u3);//true
        Us u1 = new Us(1, 2);
        Us u2 = new Us(1, 2);
        System.out.println(u1.equals(u2));// false
        Us u3 = u1;
        System.out.println(u1.equals(u3));// true

 

String equals 被重写 比较值

    String a = "Hello World";
    String b = new String("Hello World");
    String c = b; //引用传递
    System.out.println("a == b:" + a == b);             //false
    System.out.println("b == c:" + b == c);             //true
    System.out.println("a == c:" + a == c);             //false
    System.out.println("a.equals(b):" + a.equals(b));   //true
    System.out.println("b.equals(c):" + b.equals(c));   //true
    System.out.println("a.equals(c):" + a.equals(c));   //true

    最终的打印会是:
    a == b:false
    b == c:true
    a == c:false
    a.equals(b):true
    b.equals(c):true
    a.equals(c):true

 

这篇关于JAVA 一些方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!