Strings iguais são dadas como diferentes quando passada por parametros

Galera do GUJ, como estão?

[i]
Fiquei em duvida sobre se isso era “basico” ou “avançado”, então me perdoem se este for um erro e por qualquer outro erro que eu tenha cometido.

Seguinte estou com um problema que para mim é no mínimo estranho…
Eu tenho uma interface, uma classe que implementa essa interface e outras 2 classes que executam algumas ações.

O método ?getNomeClasse()? que é herdado da interface ?Serializavel? e implementado pela classe ?EnviaString? retorna uma String.
Que deveria ser igual a String propriamente dita só que diz que são diferentes, mesmo eu copiando a string e colando lá:

A saída 1 é executada dentro do método ?executar? da classe ?FrmForm?

A saída 2 é executada dentro do método ?Executar(Serializavel _objeto)? da classe ?SocketObjetoForm?

E um diz que as Strings são iguais e o outro diz que as string são diferentes.
Mas eu simplesmente passo o objeto de uma classe para outro pode ser porque as classes estão em .jars diferentes?

Espero que alguém possa me ajudar.
[/i]

Códigos:

Saída do console:

1 - Nome: Serializados.objetos.EnviaString Diferença:0
2 - Nome: Serializados.objetos.EnviaString Diferença:13

Eu tenho uma interface:

package cmp.conexao.objeto;

public interface Serializavel {

    public String getNomeClasse();

E tenho uma classe que implementa ela:

package serializados.objetos;

public class EnviaString implements Serializavel{

    public String getNomeClasse() {
        return "serializados.objetos.EnviaString";
    }

}

Tenho uma classe que cria uma instancia de EnviaString:

package codigos.forms;

public class FrmForm{
    
private void executar(){
        String endereco = "http://meuendereco.com.br?;
        try {
             EnviaString objeto = new EnviaString(txt.getString());
        System.out.println("1 - Nome:" + objeto.getNomeClasse() + " Diferença:" + objeto.getNomeClasse().compareTo("serializados.objetos.EnviaString"));
             EnviaString objeto = (EnviaString) SocketObjetoForm.Executar(objeto);
        } catch (Exception ex) {
            Log.escreveErro("FrmForm.executar", ex);
        }

    }
}

E tenho o SocketObjetoForm que executa algo que não vem ao caso:

package cmp.conexao.objeto;

public class SocketObjetoForm{
public static Serializavel Executar(Serializavel _objeto) {
        System.out.println("2 - Nome:" + _objeto.getNomeClasse() + " Diferença:" + objeto.getNomeClasse().compareTo("serializados.objetos.EnviaString"));
	
}

Saída do console:

1 - Nome: Serializados.objetos.EnviaString Diferença:0
2 - Nome: Serializados.objetos.EnviaString Diferença:13


Agradeço
Ricoldi