==一般用于基本数据类型的比较,比较的是它们的值。
equals一般用于字符串的比较,比较的是字符串的内容。
如果==用来比较引用数据类型则比较的是他们的地址,如String类的比较。
上图中a==b的结果为true,并不是因为字符串的内容相同然后返回true,而是因为两个字符串内容相同,所以Java会给它们分配到相同的内存地址中去,所以两个字符串的地址是相同的,==比较它们的地址相同,然后返回true。
如果把a改成Test,这时候a的内存地址就会发生变化,结果变为false。
一般情况下,用==比较基本数据类型的值,用equals比较字符串的内容是否相同。