Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与x27之间的差异==';和'===';在科特林?_Java_Android_Kotlin - Fatal编程技术网

Java 与x27之间的差异==';和'===';在科特林?

Java 与x27之间的差异==';和'===';在科特林?,java,android,kotlin,Java,Android,Kotlin,我也读了这个链接 但我不明白,谁能给我一个适当澄清的例子 我的意思是如果我们这样做: val str1 = "Hello, World!" val str2 = "Hello," + " World!" println(str1 == str2)//print true println(str1 === str2)//also print true 那么他们之间有什么区别呢?平等的概念是不同的。“==”检查结构相等性(相同的值),“==”检查引用相等性(内存中的相同位置)。==是一种引用相等

我也读了这个链接

但我不明白,谁能给我一个适当澄清的例子

我的意思是如果我们这样做:

val str1 = "Hello, World!"
val str2 = "Hello," + " World!"
println(str1 == str2)//print true
println(str1 === str2)//also print true

那么他们之间有什么区别呢?

平等的概念是不同的。“==”检查结构相等性(相同的值),“==”检查引用相等性(内存中的相同位置)。

==
是一种引用相等性,用于检查对象是否指向相同的位置<代码>=检查值我了解php,但在kotlin中不了解…如果检查对象指向相同的位置或不指向相同的位置,那么如何测试此案例请参考此链接@NikolaLukic,它不是检查类型。在您的例子中,JVM(正确地)判断您正在创建同一字符串的两个副本,所以它只使用一个副本。这就是为什么当你实际尝试创建两个不同的字符串对象时,
==
是正确的。是的,我知道这个理论,汤姆,你能给我一个“==”类型的例子吗?因此,如果你有两个不同的对象,但具有相同的值,如果你使用“==”它将只比较两者的值。如果使用“==”,它将返回false,因为这些对象在内存中的不同位置。