Java语言为什么不能用==比较两个字符串,会发生什么危险么?我觉得可以啊
== 是比较的对象地址,只有严格指向同一个地址的两个对象才会返回真。
如果你的业务逻辑就是要比较地址,也没问题,但是实际却常常是要求业务含义的相等,比如两个数值相同,字符串相同。
==是在比较对象之间的关系,一个对象只和自己==
应该使用equals方法,来比较不同对象的内容
java中字符串有两种初始化的方式,一种是直接用常量赋值,另一种是采用new的方式创建。
第一种方式的字符串被认为是直接数据类型,第二种被认为是对象。如果两个字符串都是以直接数据类型定义的方式,==是可以的。
如果其中最少有一个是用对象的方式创建的,==是有问题的,==表示物理地址一样并且物理地址上的内容也一样,这样的话==不能满足要求了