==与equals的区别

public class Demo {
	public static void main(String[] args) {
		Teacher a=new Teacher(5000);
		Teacher a1=new Teacher(5000);
		Teacher a2=a;
		//用来比较两个对象是否"相等"
		//在Object类中的equals方法和== 一样,默认是比较地址是否一样
		//equals是否相等取决于类中的这个方法是如何实现[重写]的
		System.out.println(a==a1);//false
		System.out.println(a.equals(a1));//true
		System.out.println(a1.equals(a2));//true
	}
	

}
public class Teacher {

		private int salary;

		public Teacher(int salary) {
			this.salary = salary;
		}

		public boolean equals(Object obj) {
			if(this==obj){
				return true;
			}
			if(obj instanceof Teacher){
				Teacher sl = (Teacher)obj;
				return this.salary==sl.salary;
			}
			return false;

			
		}
	}
		
public class Test1 {
	public static void main(String[] args) {
		String s="ABAAA";
		String s1="ABAAA";
		String s2=new String("ABAAA");
		String s3=new String("ABAAA");
		
		//"=="比较的是变量所代表的内存地址是否一样
		System.out.println(s == s1);//true
		System.out.println(s1 == s3);//false
		System.out.println(s2 == s3);//false
		
		
		System.out.println("***************");
		//String类中的equals方法是比较值是否相等
		System.out.println(s.equals(s1));//true
		System.out.println(s.equals(s2));//true
		System.out.println(s2.equals(s3));//true
		
	

	}

}
public class Test {
	public static void main(String[] args) {
         int i=100;
         //手动装箱的操作
         Integer j=new Integer(i);
         //手动拆箱的操作
         int k=j.intValue();
       
         
         int m=101;
         //自动装箱的操作
         Integer n=m;
         //自动拆箱的操作
         int mn=n;
     
         
         int a=200;
         int b=200;
         Integer a1=200;
         Integer b1=200;
         Integer a2=new Integer(200);
         Integer b2=new Integer(200);
         System.out.println(a==a1);//true 相当于自动装箱
         System.out.println(a1==b1);//false 内存地址不一致
         System.out.println(a==b2);//true 相当于自动装箱
         System.out.println(a2==b2);//false 内存地址不一致
         System.out.println(a==b1);//true 相当于自动装箱
	}

}

Java中的8中基本数据类型都对应了一个类类型
byte     Byte
short    Short
int        Integer
long     Long
float     Float
double  Double
char     Character
boolean   Boolean

基本类型和对应的类类型在进行运算的时候,类类型的数据会自动的拆箱[拆包]
拆箱:将对象中的数据自动转换成基本类型
装箱:将基本类型的数据包装成引用类型

== 是运算符   用来比较两个数据是否相等
 比较的是变量所代表的内存地址是否一样

equals  是Object类提供的一个方法
用来比较两个对象是否"相等"
Object类中的equals方法和== 一样,默认是比较地址是否一样
equals是否相等取决于类中的这个方法是如何实现[重写]的
String类中的equals方法是比较值是否相等

 ------------------------------------------------------------------------------------------------------------------------------------

java小白一枚,希望通过自己勤奋的码代码,写程序,能提升自己的能力。也希望看到了的各位大神多给点宝贵的建议,在下感激不尽。

猜你喜欢

转载自805875257.iteye.com/blog/2342724
今日推荐