| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2009 12:49:48
|
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 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2009 12:55:19
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Portanto, são criadas 3 strings.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2009 13:10:16
|
eduardoac
JavaChild
![[Avatar]](/images/avatar/f331db13ff819dd8efd8319b48f4a66c.png)
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) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2009 13:16:37
|
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)
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2009 13:17:39
|
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").
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2009 13:24:01
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2009 19:36:57
|
dm_thiago
JavaEvangelist
![[Avatar]](/images/avatar/a829b6def307bd357011e57e5d6a635d.png)
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?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2009 19:42:43
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2009 19:51:42
|
dm_thiago
JavaEvangelist
![[Avatar]](/images/avatar/a829b6def307bd357011e57e5d6a635d.png)
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!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2009 14:12:41
|
Trevisani
Debugger
![[Avatar]](/images/avatar/e3f8cedce7f1fa45b35ceccfdcb7249f.jpg)
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?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2009 23:34:37
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/12/2009 09:29:25
|
Trevisani
Debugger
![[Avatar]](/images/avatar/e3f8cedce7f1fa45b35ceccfdcb7249f.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2011 20:29:30
|
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.
|
|
|
 |
|
|