== 的作用:
基本类型:比较的就是值是否相同
引用类型:比较的就是对象的地址是否相同
equals 的作用
equals方法不能作用于基本数据类型的变量,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象地址是否相等,如果对equals方法进行重写,则比较的就是值是否相等
package com.duoceshi.thread;
public class StringTest {
/**
* author:杭州滨江多测师_王sir
* @param args
*/
public static void main(String[] args) {
StringTest.test(); //对于==的比较
StringTest.test1(); //对于equals的比较
}
public static void test(){
/**
* 1、基本数据类型:==比较的就是值是否相同
*/
int num = 1;
int num2 = 1;
System.out.println(num == num2); //true
/**
* 2、引用数据类型:==比较的就是对象的地址是否相同
*/
StringTest stringTest1 = new StringTest();
StringTest stringTest2 = new StringTest();
System.out.println(stringTest1 == stringTest2); //false、2个属于不同的对象
//字符串创建的两种创建方式
//常量池
String str1="hello";
String str2="hello";
System.out.println (str1==str2); //true //比较2个字符串
String str3= new String ("hello");
String str4= new String ("hello");
System.out.println(str3 == str4); //false //重新创建的对象==》通过new的方式创建的属于不同的对象
}
private static void test1() {
/**
* equals方法不能作用于基本数据类型的变量,如果没有对equals方法进行重写
* 则比较的是引用类型的变量所指向的对象地址是否相等
*如果对equals方法进行重写,则比较的就是值是否相等。
*/
String name = "duoceshi";
String name1 = "duoceshi";
System.out.println(name.equals(name1)); //true 比较的是引用类型的变量所指向的对象地址是否相等
String name2 = new String("duoceshi");
String name3 = new String("duoceshi");
System.out.println(name2.equals(name3)); //true 比较的是引用类型的变量所指向的对象地址是否相等
System.out.println(name.equals(name2)); //true 比较的是引用类型的变量所指向的对象地址是否相等
}
}