java中==和equals的区别

   在Java日常编程中经常使用==或者equals来比较两个变量,那么这两种方式有什么区别呢。

   堆栈:首先我们要明确堆和栈的概念,在系统内存中将局部变量存放在栈中,将new出来的对象以及一些方法(类的代码信息,static变量以及常量池)放在堆中。

现在就说一下==和equals的比较的实质:==比较的是变量的地址而equals比较的是变量的内容,那么根据上面所说的可以得到==比较的是变量存储在栈中的内容,equals比较的是变量存储在堆中的内容

附上内存分析图:

java中==和equals的区别_第1张图片

你可能感兴趣的:(equals)