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,因为这些对象在内存中的不同位置。