理解==与equal

通常理解:==是判断栈中的值是否相同。而equal是判断堆中的值是否相同。这只是大致的理解,而具体的数据类型又有差异。个人理解equal主要是为了扩展判断对象内容是否相同的一个方法。

值类型:两者都是用来判断是否相等,相等必然是判断的值是否相等。因此对与值类型的而言,在栈中存的是实际的值。因此两者对值类型是完全相同的。

string类型:

C#中==跟equal都是比较字符串中的值是否一样。因为对字符串的equal进行了重写。
而java中在初始化一个字符串时会看缓存池中是否已经存在了,如果有,则不再初始化新的。所以此时equal去比较地址,判断时相同的。而如果用new的形式,是初始化了新的对象,地址自然也发生了变化。

 

测试程序:

 

posted @ 2021-05-06 17:02  CodingWang  阅读(139)  评论(0编辑  收藏  举报