为什么我可以在JavaScript中使用==而不能在Java中使用?
我有两个Java字符串:为什么我可以在JavaScript中使用==而不能在Java中使用?,java,javascript,Java,Javascript,我有两个Java字符串: String a = "ab"; String b = "ab"; 我用string.equals()方法测试它们,因为=操作符只检查对对象的引用是否相等 为什么我可以在JavaScript中使用== ==Java中的运算符正在检测它们两边是否是相同的对象,因为Java中的字符串是一个对象,但不是像int、float这样的基元将检查他们是否有相同的地址 Exmaple: String a = new String("hello"); String b = "hello
String a = "ab";
String b = "ab";
我用string.equals()
方法测试它们,因为=
操作符只检查对对象的引用是否相等
为什么我可以在JavaScript中使用
==
==Java中的运算符正在检测它们两边是否是相同的对象,因为Java中的字符串是一个对象,但不是像int、float这样的基元将检查他们是否有相同的地址
Exmaple:
String a = new String("hello");
String b = "hello";
a.equals(b) // true
a == b // false
a和b不是同一个对象,但它们具有相同的内容。String a=“ab”代码>正在赋值
Java中的=
检查字符串之间的相互引用.equals()
检查值
你应该看看这个问题,以获得更多关于这个问题的答案
另外,为了完整性,我应该提到,在javascript中,您还可以执行=
,使null等于false
true==1//false
Java中的true==1//true
比较变量是否指向同一对象。它不进行语义比较。在Javascript中,=
比较字符串。Java和Javascript是不同的语言。你是在问为什么这两种不同的语言有不同的设计吗?事实上,Javascript最初被称为livescript,与Java没有任何关系。常量字符串文本被存储在Java中。a==b,这里将返回true@Supr语言设计比较问题不属于这里。你期望得到什么样的答案?这个问题会引起猜测。即使你有人设计了两种语言(或结合了两位作者的问题),这会有多大用处?OP知道这一点,请阅读问题。对不起,速度太快了:(