В python ==
используется для сравнения содержимого объектов путем переопределения оператора . eq (a, 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, который сравнивает обе ссылки на один и тот же объект или нет