文章目录
Java中==和equals()的区别
==:
- 比较基本类型时:比较的是值是否相同
- 比较引用类型时:比较对象的内存地址是否相同
equals() :
-
equals方法常用来比较对象的内容是否相同
-
equals() 方法继承于Object类 而Object类是所有类的直接或间接父类
-
默认情况下,比较的是地址,用于比较两个对象是否相等 比较 2 个对象的内存地址是否相等.
-
重写该方法后比较对象的变量值是否相同 其本质还是基于 “==”
案例:equals比较
public static void main(String args[]){
Integer x = 5;
Integer y = 10;
Integer z =5;
Short a = 5;
System.out.println(x.equals(y)); //false
System.out.println(x.equals(z)); //true
System.out.println(x.equals(a)); //false
}
案例:equals比较2
public class Name14 {
public static void main(String[] args) {
System.out.println("请输入:");
Scanner scanner = new Scanner(System.in);
String a =scanner.next();
String b = "恰北北";
String c = "1";
if(a.equals(b)){ //输入a=恰北北 b = "恰北北"
System.out.println("相同ab:equals"); //相同ab:equals
System.out.println(a.hashCode());//24405840
}else {
System.out.println("不相同ab:equals");
System.out.println(a.hashCode());
System.out.println(b.hashCode());
}
System.out.println("================");
if(a.equals(c)){//输入a=恰北北 c = "1"
System.out.println("相同ac:equals");
System.out.println(a.hashCode());
}else {
System.out.println("不相同ac:equals");//不相同ac:equals
System.out.println(a.hashCode()); //24405840
System.out.println(c.hashCode()); //49
}
}
}
案例:if判断输入的是否为想要的
public class name2 {
public static void main(String[] args) {
Scanner a = new Scanner(System.in);
String b = "恰北北";
String c = a.next();
if (c.equals(b) ){ //判断字符串是否相等 equals() 括号里放对比对象名称 用于引用类型对比 其根本还是基于 “==”
System.out.println("绝绝子");
}else
System.out.println("其他");
}
}
案例:if单选择结构
public class Name1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
//equals()判断字符串是否相等
if (s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
//凡是属IO流的类如果不关闭会一直占用资源.要养成好习惯用完就关掉
scanner.close();
}
}