结论

  • 不管是基本类型还是引用类型都是新开辟的内存空间即返回的不是同一个地址空间 不然操作返回值A变量直接影响到返回值B变量
  • '==' 基本比较的是两者的值是否相同 而引用类型比较两者的是引用地址是否相同

基本类型

返回的值相同 '=='就为true

public int m1(){
	return -1;//obj.m1()==obj.m2() true
}
public double m2(){
	return 2.2;//obj.m2()==obj.m2() true
}

引用类型

返回的引用地址相同 '=='就是false

public String m3(){
	return "m3";//obj.m3()==obj.m3() true
	//"m3"在常量池中 所以引用地址相同
}
public String m4(){
	return new String("m4");//odj.m4()==obj.m4() false
	//new实例会在堆内存中开辟内存空间 即引用地址不同 所以false
}