String

5 respostas
edymrex

Olhem essas comparações:

public class A
{
	public static void main(String [] args)
	{
		 String S1 = "A";
		 String S2 = new String("A");
		       
		 System.out.println( S1.intern() == S2 );
		 System.out.println( S2.intern() == S2 );
		 System.out.println( S2.intern() == S1 );
	 }
}

O que faz esse método intern() ?
O que é realmente comparado ?

5 Respostas

Kassiane_Pretti

Dá uma olhadinha aqui:

http://www.guj.com.br/java.tutorial.artigo.103.1.guj

Não sei se vai te ajudar, eu passei só o olho no conteúdo.

Até.

alucardeck

nao tenho ideia doq faz o Intern…

na documentação http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html
diz

Returns a canonical representation for the string object.

de qqer jeito… não se compara Strings com ==

deve usar o metodo .equals

s1.equals(s2)

edymrex

Isso é questão de certificação, por isso quero entender seu funcionamento.

robinsonbsilva

intern(): retorna uma referência para um objeto String correspondente armazenado no “pool”;

http://www.guj.com.br/java.tutorial.artigo.103.1.guj

robinsonbsilva

Jovem, acho que entendi…veja:

A diferença entre as duas formas de construção string é que , o lugar onde estas
strings são disponíveis.

/*
Quando você cria o objeto String no formato abaixo então o objeto String está 
disponível dentro do pool de string literals. Se a mesma string  existe no pool de 
strings então a antiga string vai ser substituida pela nova.
*/
String s = "Testing String"; 

/*
Quando você constroi a String chamando a palavra chave new então o objeto String vai 
ser criado em tempo de execução e não vai existir no pool de strings. Para colocar 
esta string encapsulada dentro do pool chame o método intern()
*/
String s1 = new String("Testing String");

veja:http://www.mail-archive.com/[email removido]/msg36608.html

Criado 16 de julho de 2008
Ultima resposta 16 de jul. de 2008
Respostas 5
Participantes 4