看如下代码
while(!oneprString.equals("end"))
和
while(oneprString!="end")
你会发现!=的循环偶尔是个死循环
这是因为==和!=不但比较值,还比较数据类型
对于end来说是栈指向堆中的字符串类型对象,而oneprString是栈指向堆中的对象,对象再指向一个字符串类型对象
从数据类型的角度来说,二者的书库类型不一样,所以while的条件一直是false。导致死循环。
看如下代码
while(!oneprString.equals("end"))
和
while(oneprString!="end")
你会发现!=的循环偶尔是个死循环
这是因为==和!=不但比较值,还比较数据类型
对于end来说是栈指向堆中的字符串类型对象,而oneprString是栈指向堆中的对象,对象再指向一个字符串类型对象
从数据类型的角度来说,二者的书库类型不一样,所以while的条件一直是false。导致死循环。