Более глубокий взгляд на функцию, которую она на самом деле делает:
Он проверяет, является ли отправленное вами значение экземпляром String
.
public boolean equals(Object value) {
if (value instanceof String){
// continue comparing..
}else{
return false;
}
}
, если значение не равно 'В случае String
метод вернет false, в вашем случае 5 - экземпляр Integer
.
Именно поэтому метод вернет false.