做一些java基础知识的记录📕
java基本类型:byte short int long float double char boolean(指向具体的数值)
java引用类型:类 接口 数组等。指向的不是具体的数值,而是指向了对象的地址。
==
用于判断基本类型的数值是否相等;
用于判断引用类型是否指向同一个地址、判断是否为同一个对象。
equals
如上图所示,为java源码。
Object类中,equals()用于判断两者地址是否相等;
Object的子类(Integer、String、Double……)中,equals()用于判断两者的值(两者的内容)是否相同。
equals方法可以重写,可自定义判断条件。
练习
public class Test {
public static void main(String[] args) {
int a = 1;
int b = 1;
int c = 2;
System.out.println(a == b);
System.out.println(a == c);
System.out.println("———————.—————————");
String astr = "1234";
String bstr = "1234";
String cstr = "12";
System.out.println(astr == bstr);//关于常量,相同的赋值,则会指向同一个对象。
System.out.println(astr == cstr);
System.out.println("______.._________");
Animal a1 = new Animal();
Animal a2 = new Animal();
Animal a3 = a1;
System.out.println(a1 == a2);
System.out.println(a1 == a3);
System.out.println("________..._______");
String str1 = "123";
String str2 = "123";
String str3 = "123456";
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));
System.out.println("_______-________");
Double d1 = 1.0;
Double d2 = 1.0;
Double d3 = 2.0;
System.out.println(d1.equals(d2));
System.out.println(d1.equals(d3));
System.out.println("________--________");
Animal ani1 = new Animal("cat");
Animal ani2 = new Animal("cat");
Animal ani3 = ani1;
Animal ani4 = new Animal("dog");
System.out.println(ani1.equals(ani2));
System.out.println(ani1.equals(ani3));
System.out.println(ani1.equals(ani4));
System.out.println("________^^__________");
String string="123";
System.out.println(string=="123");
System.out.println(string=="asd");
System.out.println(string.equals("123"));
System.out.println(string.equals("asd"));
}
}
class Animal {
private String name;
public Animal() {
String name = "animal's name";
}
public Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Animal)) {
return false;
}
Animal animal = (Animal) o;
return Objects.equals(this.getName(), animal.getName());
//this指向当前对象
}
}
运行结果:
true
false
———————.—————————
true
false
______.._________
false
true
________..._______
true
false
_______-________
true
false
________--________
true
true
false
________^^__________
true
false
true
false
参考资料
https://blog.csdn.net/nxj_climb/article/details/113175127参考了该文章及其评论区
https://www.bilibili.com/video/BV1fh411y7R8?p=319&vd_source=07ed824bba84f399accbac1be9f9f505