| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2004 11:16:31
|
Fabricio Cozer Martins
GUJ Ranger
![[Avatar]](/images/avatar/2ecd2bd94734e5dd392d8678bc64cdab.jpg)
Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline
|
Pessoal, alguem que já teve em situações
que precisou manipular Strings ???
Aqui vai um exemplo pequeno de como
A classe StringBuffer ajuda esse processo!
public class StringAppend {
public static void main (String args[])
{
//Utilizando String
System.out.println("Utilizando String");
String str = new String();
java.util.Date dtIn = new java.util.Date();
System.out.println(dtIn);
//Realiza um loop de 5000 passos acrescentado no final da String o valor do contador(i)
for (long i=0; i<5000; i++)
{
str += i;
}
java.util.Date dtFin = new java.util.Date();
System.out.println(dtFin);
//Utilizando StringBuffer
System.out.println("Utilizando StringBuffer");
StringBuffer strB = new StringBuffer();
java.util.Date dtInB = new java.util.Date();
System.out.println(dtInB);
for (long i=0; i<5000; i++)
{
strB.append(i);
}
java.util.Date dtFinB = new java.util.Date();
System.out.println(dtFinB);
}
}
Quem tiver a oportunidade de testar .. verá o quanto é eficiente!!!
Isso acontece porquê o método append da Classe StringBuffer adiciona simplesmente no final da String o elemento,
Já com a Classe String pura, ele a cada acrescento do elemento percorre toda String, isso em operações simples não é percebido, mas quando se trata de operações com strings muito grandes, agiliza e muito o tempo de processamento!
|
Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2004 11:20:49
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Realmente, a classe StringBuffer ajuda muito no desempenho, principalmente na manipulação de grandes Strings.
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2004 12:44:08
|
brlima
Moderador
![[Avatar]](/images/avatar/fc2c7c47b918d0c2d792a719dfb602ef.png)
Membro desde: 12/05/2003 14:03:38
Mensagens: 1537
Localização: São Paulo - SP
Offline
|
Essa StringBuffer ja me ajudou mto
Ele melhora mto performances quando vc ta trabalhando com Strings...
Show de bola
|
Bruno R. Lima
-------------------------------------------
flickr :: twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2004 17:53:29
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
|
Lembrando que existe um tutorial aqui no GUJ sobre esse assunto
Rafael
|
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"
http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2004 18:30:09
|
Fabricio Cozer Martins
GUJ Ranger
![[Avatar]](/images/avatar/2ecd2bd94734e5dd392d8678bc64cdab.jpg)
Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline
|
Acabei de ler o tutorial
Gostei também do tutorial ...
Realmente não sabia que já havia algo aqui no GUJ explicando ...
Mas de qualquer forma ... acho q não podemos esquecer desses detalhes
que às vezes passamos despercebidos sobre a existência da StringBuffer... principalmente quem está iniciando agora
Valeu
|
Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2004 18:32:49
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
|
Por isso que conhecer a API eh MUITO importante. Sempre ha coisas interessantes para serem usadas.
Rafael
|
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"
http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2004 20:14:57
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Além do mais, economiza a memória!
|
>> Inocêncio. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/06/2004 18:23:42
|
mtakeda
JavaBaby
Membro desde: 02/04/2004 19:45:37
Mensagens: 94
Offline
|
fmartins wrote:Isso acontece porquê o método append da Classe StringBuffer adiciona simplesmente no final da String o elemento,
Já com a Classe String pura, ele a cada acrescento do elemento percorre toda String, isso em operações simples não é percebido, mas quando se trata de operações com strings muito grandes, agiliza e muito o tempo de processamento!
Talvez eu esteja enganado, mas acho que a razão dessa diferença é outra. Com a classe String pura ele não percorre toda a string a cada iteração. Ele cria um novo objeto String e muda a referência para esse objeto. Daí a diferença no desempenho. O loop está criando vários objetos na memória (e dá-lhe coletor de lixo!). No StringBuffer, isso não acontece. É sempre o mesmo objeto (quer dizer, nem sempre, mas aí já é outra história! rs)
|
|
|
 |
|
|