你知道为什么==的时候,基本类型比较内容,对象就比较地址?

因为基本类型都是存在栈里面的,Int a=3;当你int b=3的时候,jvm会干嘛呢?首先,它会去栈里面找是不是已经有一个数据为3了。如果不是的话新建一个地址,是的话,就把b指向这个地址,所以对于基本类型来说,当值相同的时候,地址也是相同的,所以当你对基本类型的时候,内容相同的肯定返回的是true。。因为实质上,他们的地址也是相同的但是对于其他类型,都是存在堆里面的动态分配内存,所以每一次新建一个数据都会动态分配一个内存地址,所以的时候,当然内存地址是不一样的。要记住,==永远是用来比较内存中的地址的,基本类型感觉上是在比较内容,实际上还是在比较地址!

Guess you like

Origin blog.csdn.net/m0_51945027/article/details/121671272