简单区别
原理这里就不介绍了,平常主要的用区别就是
==
基础数据类型:判断两个变量的值相等。
引用数据类型:判断两个变量的值和内存存放地址相等
equals
基础数据类型:判断两个变量的值相等。
引用数据类型:默认状态下,判断的是两个变量的值相等
equals的语法
变量1.equals(变量2);
实例:
public class Demo1 {
public static void main(String[] args) {
String a = "张三李四";
String b = new String("张三李四");
String c = "张三李四";
if (a == b) {
System.out.println("newString==" + true);
}else{
System.out.println("newString==" + false);
}
if (a.equals(b)) {
System.out.println("newStringequals" + true);
}else{
System.out.println("newStringequals" + false);
}
if (a == c) {
System.out.println("String==" + true);
}else{
System.out.println("String==" + false);
}
if (a.equals(c)) {
System.out.println("Stringequals" + true);
}else{
System.out.println("Stringequals" + false);
}
Integer d = 1;
Integer f = 1;
Integer m = new Integer(1);
if (d == f) {
System.out.println("Number==" + true);
}else{
System.out.println("Number==" + false);
}
if (d.equals(f)) {
System.out.println("Numberequals" + true);
}else{
System.out.println("Numberequals" + false);
}
if (d == m) {
System.out.println("newNumber==" + true);
}else{
System.out.println("newNumber==" + false);
}
if (d.equals(m)) {
System.out.println("newNumberequals" + true);
}else{
System.out.println("newNumberequals" + false);
}
}
}
// 结果集
newString==false
newStringequalstrue
String==true
Stringequalstrue
Number==true
Numberequalstrue
newNumber==false
newNumberequalstrue