关于java里 判断变量是否相等的问题,
基本类型判断时我们用 == 判断的是他们的值是否相等,意味着 int a=10; int b=10; a==b的判断结果是true;
如果是复合类型(类)那么这个时候 equalse 等同于 “==” 并且这里的意义与基本类型判断不同,这里判断的是引用地址是否相等,与实际值无关。
String a="测试"; String b="测试"; a==b的判断由于地址不同所以结果为false
String a="测试"; String b=a; a==b 的判断由于b=a是将a的引用地址给了b所以地址判断相等,结果为ture;
关于变量地址问题,详细见前面说的 堆&栈 以及 值传递&java传递
网友评论