为什么我可以在JavaScript中使用==而不能在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

我有两个Java字符串:

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知道这一点,请阅读问题。对不起,速度太快了:(