Duvida questão whizlabs - stringbuilder

2 respostas
LPJava

ae pessoal ontem fazendo o whizlabs me deparei com a questao em anexo… e me bateu uma duvida na resposta… e acabei implementando o codigo e fiz alguns comentados… gostaria que vcs olhasse e se eu interpretei de forma correta ou nao…
Aqui o codigo e em anexo a questao

package cap4;

public class Builder {

	public static void main(String[] args) {
	
		StringBuilder sb = new StringBuilder("camilo");
		StringBuilder sa=sb;
		
		/* o equals nesse caso funciona do StringBuilder pq sa aponta
		 * para o mesmo local
		 */
			System.out.println(sb.equals(sa)); //true
			
			/*aqui é false devido StringBuilder nao implementar o metodo
			 * equals
			 */
		StringBuilder s = new StringBuilder(sa);
		System.out.println(s.equals(sb));
		}
	}

Bom coloquei em anexo tb meu ultimos resultados do whizlabs… pois to na bateria de simulados… pois to pretendo fazer o exame dia 27/10 ai gostaria que a galera do guj, olhasse meu resultado e será que dar para arriscar…novamente… a insegurança de ver fail la mais uma fez… chega aperta o coração auha!

flw!!

2 Respostas

CarlosEduardoDantas

é verdade… StringBuilder não implementa o método equals(), portando podemos dizer que o equals() neste caso é o mesmo equals() de object, em que equals() e == são basicamente a mesma coisa neste caso.

No primeiro caso retornou true porque tanto sa quanto sb apontam para o mesmo endereço de memória, portanto equals ou == retornarão true

No segundo caso, s contém o mesmo valor que sa, no caso “camilo”, porém não apontam para o mesmo endereço de memória. Repare que neste construtor de StringBuilder, apenas copia o conteudo de sa para s, mas não atribui o mesmo endereço de memória para s, tendo como consequência que retorna false.

LPJava

é errei essa questao por falta dessa atenção… conforme pode ver em anexo as opcoes que marquei… :frowning:

Criado 16 de outubro de 2007
Ultima resposta 16 de out. de 2007
Respostas 2
Participantes 2