String e null  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
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
rbarioni
GUJ Master
[Avatar]

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."
[Email] [MSN] [ICQ]
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.
[ICQ]
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?
Lucas Teixeira
Java Ninja
[Avatar]

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
[Email] [MSN]
Rafael Steil
Administrador
[Avatar]

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
[Email] [WWW]
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...
Rafael Steil
Administrador
[Avatar]

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
[Email] [WWW]
Ironlynx
Moderador
[Avatar]

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/
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team