Questão de certificação - String

4 respostas
camillabrasilia

O que irá imprimir ao tentarmos rodar o código abaixo?
Além de colocar a resposta, por favor comentem o código.

Agradeço a todos.

public class Teste
{
	public static void main(String[] args)
	{   
		String nome1 = "teste";
		String nome2 = nome1;
		String nome3 = nome2;
		
		nome1 = "mudou";
			

		int num1 = 1;
		int num2 = num1;
		int num3 = num2;
		
		num1 = 2;
	
		System.out.println(nome1 + "  " + nome2 + "  " + nome3);
		System.out.println(num1 + "  " + num2 + "  " + num3);
	}
}

4 Respostas

Rafael_Nunes

mudou teste teste
2 1 1

Após inicializada as variáveis, você atribui o valor da primeira variável à elas (nome1, num1), ou seja, a JVM< criou uma cópia de seus valores para as outras variáveis (2 e 3). Porém no caso da String, elas referenciam o mesmo objeto na memória, como uma String é imutável, ela criará outro objeto para nome1, permanecendo o primeiro objeto para nome2 e 3. Quanto aos int´s, eles não referenciam o mesmo local de memória, quando você modificou o num1, somente ele foi modificado.

Acho que é mais ou menos isso.

smota

eu tava digitando :cry: … mas é isso ae que o Rafael falou 8) .

R

Eu pensei que era essa a resposta mas no String, qd rodei apareceu
mudou teste teste

Ironlynx

Mas ah resposta eh mudou teste teste mesmo como o Rafael Nunes falou ué???Aonde vc não entendeu?

Criado 22 de março de 2004
Ultima resposta 6 de abr. de 2004
Respostas 4
Participantes 5