Dúvida na Quantidade de Strings Criadas [resolvido]  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
javando
JavaEvangelist

Membro desde: 04/12/2006 15:42:08
Mensagens: 409
Offline

Oia eu aqui de novo XD

tem outra questão do testKiller que me deixou com dúvida



eu posso jurar que a resposta é a F ... mas no ressult do testKliier tah a C

eu ate olhei de novo o livro dah Kathy, mas , ou minha interpretação da explicação tá muito errada .. ou o testKileer tá errado.

opiniões?

Só para desencargo de conciencia:



funciona perfeitamente, portanto uma String literal também é um novo objeto String

XD
(porque q as áspas tão dando erro?)

This message was edited 2 times. Last update was at 28/01/2009 13:24:21


Antonio Rafael Rodrigues
SCJP
SCWCD
SCBCD
site: http://www.antoniorafael.eti.br
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline


Portanto, são criadas 3 strings.
[WWW]
eduardoac
JavaChild
[Avatar]

Membro desde: 09/06/2007 18:07:55
Mensagens: 111
Localização: São Paulo
Offline

Quando você diz:
String s = "Fred"; // 1. Puxo a string "Fred" do pool

Não criaremos uma nova String também?
Onde esta a contagem para chegar em 3? Não entendi.
Abraços.

SCJA - Sun Certified Java Associate

JAVA Developer
(Java, a principal ilha da Indonésia)
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

eduardoac wrote:Quando você diz:
String s = "Fred"; // 1. Puxo a string "Fred" do pool

Não criaremos uma nova String também?
Onde esta a contagem para chegar em 3? Não entendi.
Abraços.


Outra sutileza da linguagem.

Quando você faz isto aqui:


está fazendo o seguinte:
a) O Java, ao carregar a sua classe (ou seja, antes de executar o método "makinStrings"), vê que existe uma literal "Fred" no código, e então cria uma string "Fred" e a insere no pool de strings
b) Quando você executar o método "makinStrings", você vai simplesmente atribuir à variável s uma referência para a string "Fred", que já está criada e está no pool de strings.

Então, para efeitos dessa questão, esse comando não conta como criação de strings.
b)


[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

thingol wrote:
Portanto, são criadas 3 strings.


Tá bom - nas linhas 13 ("Fred47"), 14 ("ed4") e 15 ("ED4").

[WWW]
javando
JavaEvangelist

Membro desde: 04/12/2006 15:42:08
Mensagens: 409
Offline

po cara .. entendi .. valew

pelo que vi .. no exemplo do livro ele tava contando quantas string foram criadas até o momento ...

e no testKiller .. tava perguntando quantas strings seriam criadas durante a execução daquele método em especifico

por issu que eu me confundi XD

brigadão ae

Antonio Rafael Rodrigues
SCJP
SCWCD
SCBCD
site: http://www.antoniorafael.eti.br
dm_thiago
JavaEvangelist
[Avatar]

Membro desde: 14/02/2007 04:23:55
Mensagens: 305
Offline

thingol wrote:
Portanto, são criadas 3 strings.


Só não entendi um ponto: você está supondo que Fred já foi criado antes ou está faltando um pedaço do código onde ele é realmente criado?
javando
JavaEvangelist

Membro desde: 04/12/2006 15:42:08
Mensagens: 409
Offline

então .. pelo o que eu entendi ... antes mesmo da aplicação propriamente dita ser executada

a JVM caça as string literais e cria um objeto para cada uma ...ai
na hroa que realmente começa a rodar o programa .. a JVM soh vai atribuindo o q ela criou às variaveis de referencia.

XD

Antonio Rafael Rodrigues
SCJP
SCWCD
SCBCD
site: http://www.antoniorafael.eti.br
dm_thiago
JavaEvangelist
[Avatar]

Membro desde: 14/02/2007 04:23:55
Mensagens: 305
Offline

javando wrote:então .. pelo o que eu entendi ... antes mesmo da aplicação propriamente dita ser executada

a JVM caça as string literais e cria um objeto para cada uma ...ai
na hroa que realmente começa a rodar o programa .. a JVM soh vai atribuindo o q ela criou às variaveis de referencia.

XD


Embora eu nunca tenha lido nada parecido com isso, essa foi a explicação que mais fez sentido pra mim. Também explicou porque o 47 não era uma nova String. Valeu!
Trevisani
Debugger
[Avatar]

Membro desde: 27/03/2007 17:15:20
Mensagens: 61
Offline

thingol wrote:


Cara, ta aí uma coisa que eu não sabia, o compilador cria um StringBuilder?!? Quer dizer que se eu fizer:

Acontecerá:


É isso?!? Ou eu entendi tudo errado?
javando
JavaEvangelist

Membro desde: 04/12/2006 15:42:08
Mensagens: 409
Offline

Trevisani wrote:
thingol wrote:


Cara, ta aí uma coisa que eu não sabia, o compilador cria um StringBuilder?!? Quer dizer que se eu fizer:

Acontecerá:


É isso?!? Ou eu entendi tudo errado?


bom .. eu acho q não é iso não cara rsrs

o amigo lah se confundiu na hora de escrever eu acho rsrs
Trevisani
Debugger
[Avatar]

Membro desde: 27/03/2007 17:15:20
Mensagens: 61
Offline

Pois é, sei lá, por isso que eu fiquei meio assim... mas se estiver certo, então preciso estudar mais o.O

Trevisani
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5748
Offline

Trevisani wrote:
thingol wrote:


Cara, ta aí uma coisa que eu não sabia, o compilador cria um StringBuilder?!? Quer dizer que se eu fizer:

Acontecerá:


É isso?!? Ou eu entendi tudo errado?


Você entendeu direitinho.
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team