楼上正解...
Integer x1 = 137;
Integer x2 = 137;
System.out.println(x1==x2);
Integer y1 = 123;
Integer y2 = 123;
System.out.println(y1==y2);
结果是false
true
这个是点杂谈,不知对你有帮助不..
最近学习碰到了一下怪题,String str1="abc" ; string str2="abc" str==str2 这里注意 int,float,boolean,等基本数据类型的包装类型封装了,不能修改栈区内部值 也包括String
举个例子int a=3 ,int b=3 a==3 上面遇到了怪题跟这个很相似,因为字面量a 在栈区分配的内存地址,而字面量b的时候开始在栈区查找地址,所以共同引用的这个地址
所以str1==str2 确实成立,一般在包装类型比较引用类型用equals()方法,一旦修改,就改变指向了就false了
{:soso_e128:} |