| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 10:45:15
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
o valor null e o valor "" são a mesma coisa para uma string?
de modo que os códigos abaixo são iguais
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 10:48:38
|
rbarioni
GUJ Master
![[Avatar]](/images/avatar/c8ad096d3f3b756be66f6.gif)
Membro desde: 02/09/2002 10:49:11
Mensagens: 1317
Localização: Campinas
Offline
|
nao, nao sao a mesma coisa...
significa q a string tem o conteudo "", ou seja, conteudo em branco...
significa q a string eh nula, nao tem valor algum...se tentar usar essa string com esse valor, vai ter um NullPointerException...
ficou claro?
|
"Ozzy Osbourne pode ter inventado o heavy-metal, mas com certeza, Metallica o aprimorou." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 11:11:55
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
E mais uma coisa, quando for comparar Strings, não utilize o operador '==', mas sim o método equals.
string1.equals( string2 );
A explicação você encontra aqui:
http://www.guj.com.br/java.artigo.103.2.guj
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 15:44:44
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Por que o Java tem String e StringBuffer??
Por que não colocar a funcionalidade da StringBuffer (pelo que vi StringBuffer é mais rápida que String) direto na sintaxe de concatenação, de modo a não precisar existir mais o tipo StringBuffer?
Assim, o código
Teria a funcionalidade de um StringBuffer atual e não chamaria 99 "new" para cada concatenação.
O que acham?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 17:26:59
|
Lucas Teixeira
Java Ninja
![[Avatar]](/images/avatar/758a06618c69880a6cee5314ee42d52f.png)
Membro desde: 11/12/2003 10:47:22
Mensagens: 269
Localização: São Paulo - SP
Offline
|
Se vc estourar o espaco da StringBuffer inicialmente definido, uma nova SB será instanciada...
|
Lucas F. A. Teixeira .·.
lucastex no gmail com
lucastex.com/twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 18:09:01
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
|
Lucas Teixeira wrote:Se vc estourar o espaco da StringBuffer inicialmente definido, uma nova SB será instanciada...

Na verdade nao. Internamente, StringBuffer mantem um array de Strings para guardar os valores inseridos. Quando voce estourar o limite de posicoes, uma chamada a expandCapacity() sera feita, criando um novo array com o dobro da capacidade atual e entao copia os valores novos ( usando System.arraycopy() ) para o array da instancia.
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) 22/12/2004 19:29:39
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Pessoal, esse lance de como funciona as Strings em Java é muito hard core.
Mas insisto, se StringBuffer é tão power-rápido, por que não transformar seu mecanismo no padrão, fazendo as Strings normais terem seu comportamento ultra-power?
Por que complicar? Eu não quero saber o funcionamento interno da JVM e suas doideiras com Strings, eu apenas quero usá-las e quero que sejam o mais eficiente possível. É meio difícil pra mim engolir isso...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 20:49:52
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
|
Os compiladores ja fazem isso para voce sempre que podem, mas em "codigo dinamico" vc fica responsavel por tal acao.
De uma olhada em http://www.churchillobjects.com/c/11027b.html
No .NET Strings tambem sao imutaveis.
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) 23/12/2004 00:42:33
|
Ironlynx
Moderador
![[Avatar]](/images/avatar/93d65641ff3f1586614cf2c1ad240b6c.jpg)
Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline
|
Não podemos esqueçer também que StringBuffer é sincronizado!Quando não for necessário utilizar sincronização(a maioria das aplicações!!!), podemos usar o StringBuilder do Tiger, que é muito mais rápido.
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuilder.html
|
Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/ |
|
|
 |
|
|