结论
- 不一定。
- 基本类型返回的是值 引用数据类型返回的是引用地址(是否同一个引用看是否用到常量池)
- '==' 基本类型比较的是两者的值是否相同 而引用类型比较两者的是引用地址是否相同
基本类型
返回的值相同 '=='就为true文章来源:https://www.toymoban.com/news/detail-424924.html
public int m1(){
return -1;//obj.m1()==obj.m2() true
}
public double m2(){
return 2.2;//obj.m2()==obj.m2() true
}
引用类型
返回的引用地址相同 '=='就是true文章来源地址https://www.toymoban.com/news/detail-424924.html
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
}
public Integer m5(){
return new Integer(1);//obj.m5()==obj.m5() false
}
public Integer m6(){
return 66;//常量池[-128,127]不同对象调用返回的都是相同的引用
}
public Integer m7(){
return 777;//超出常量池 范围 不相同
}
到了这里,关于Java中不同对象调用该实例方法返回值是同一个地址空间吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!