因为在java当中比较字符串String实际上比较的是字符串之间的地址,这一点比较奇怪,而比较数字则是货真价实的比较数字的大小。因此我们为了判断两个字符串是否是一样的可以使用:
str.equals(str2)
来进行判断,str是一个字符串,str2是用来比较的字符串。我们在Python当中直接比较就可以了,希望Java也能做出相应的优化。
但是这是为什么呢?因为在Java当中具有两种大的数据类型,一种是引用类型,一种是基本类型。
1.对基本类型而言,使用==进行比较,是直接比较两个数据类型之间的数值
2.对于引用类型而言,使用==进行比较,是比较的两个数据类型之间的地址
对于引用类型,栈里存放地址,堆里面存放数据