PythonとJavaの==演算子の違いは何ですか

PrototypeAds:

Pythonのは、Javaにはないながら、次の文怒鳴るを印刷することができる理由を誰かが私に説明することができます。私は、Javaとequals()に==を行うには、それの何かを知っているが、私は本当に違いを理解していません。

Pythonコード

str1 = "Pro"
str2 = str1 + ""

if str1 == str2:
   print("the strings are equal")```

Javaコード

public class StringEq {
    public static void main(String[] args) {
        String str1 = "Pro";
        String str2 = str1 + "";

       if (str1 == str2) {
            System.out.println("The strings are equal");
        }
     }
 }
デッドプール :

Pythonで==オーバーライドすることにより、オブジェクトの内容を比較するために使用される演算子。EQ(B)メソッドは、strクラスは、オブジェクトの内容を比較するために、これを上書きしています

These are the so-called “rich comparison” methods. The correspondence 
between operator symbols and method names is as follows: x<y calls 
x.__lt__(y), x<=y calls x.__le__(y), x==y calls x.__eq__(y), x!=y calls 
x.__ne__(y), x>y calls x.__gt__(y), and x>=y calls x.__ge__(y).

しかし、Javaで==オペレータは、オブジェクトの参照を比較に使用され、ここで

テキスト値を比較するために、「==」演算子を使用すると、Javaの初心者が作る最も一般的なミスの一つです。これは、彼らが同じオブジェクトを参照するかどう意味、二つの文字列の参照平等だけをチェックし、「==」が正しくないためです。

そのJavaであなたが使用する必要があり、オブジェクトの内容と比較するequalsでオーバーライドされStringたクラスを。

if (str1.equals(str2))

そうするJava ==演算子はと等しいis同一のオブジェクトかどうかを指摘され、両方の参照を比較するPythonでオペレータ

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=330243&siteId=1