Eu me contenho para não por fogo nessas discussoes… Acho que na vida passada eu fui Nero…
Conflito Nivel 5
Eu me contenho para não por fogo nessas discussoes… Acho que na vida passada eu fui Nero…
Conflito Nivel 5
Código fonte:
[code]public class Main {
private static final Object object = new Object();
}
[/code]
Se compilarmos esse código e analisarmos os bytecodes que o eclipse mostra em pseudocódigo:
//Compiled from Main.java (version 1.5 : 49.0, super bit)
public class Main {
//Field descriptor #6 Ljava/lang/Object;
private static final java.lang.Object object;
//Method descriptor #8 ()V
//Stack: 2, Locals: 0
static {};
0 new java.lang.Object [3]
3 dup
4 invokespecial java.lang.Object() [10]
7 putstatic Main.object : java.lang.Object [13]
10 return
// aqui vem o construtor default que eu omiti pois nao fazia diferença....
}
Veremos que todas as instruções para instanciar o object estão dentro do bloco static… comprovando que o compilador transforma o código, condizente com o que eu falei anteriormente. E eu já sabia disso e nao precisava nem perder meu tempo, só que como eu sou muito chato… resolvi por a prova…
Inclusive essa maneira de comprovar o que eu falei, também tirei da minha cabeça…
Não sei se vc consegue enchergar isso rod… ou se está muito avançado para o seu conhecimento…
Com um pequeno teste cheguei a essa mesma conclusão rogelgarcia… mas é interessante essa do Eclipse, como você faz para ver o pseudo código desta maneira?
A do conflito também foi boa hsuahsuahsuas
Se voce abrir um arquivo .class no eclipse que nao tenha fonte anexado, ele mostra o pseudo código.
.
.
.
O rod.attack é muito é folgado… o neguinho tá ajudando e ele ainda vem com exigência. Aí dá nivel 5…hehehe
Mas aqui no fórum aparece muito nego tranquilo assim mesmo…
[quote=rogelgarcia]Código fonte:
[code]public class Main {
private static final Object object = new Object();
}
[/code]
Se compilarmos esse código e analisarmos os bytecodes que o eclipse mostra em pseudocódigo:
//Compiled from Main.java (version 1.5 : 49.0, super bit)
public class Main {
//Field descriptor #6 Ljava/lang/Object;
private static final java.lang.Object object;
//Method descriptor #8 ()V
//Stack: 2, Locals: 0
static {};
0 new java.lang.Object [3]
3 dup
4 invokespecial java.lang.Object() [10]
7 putstatic Main.object : java.lang.Object [13]
10 return
// aqui vem o construtor default que eu omiti pois nao fazia diferença....
}
Veremos que todas as instruções para instanciar o object estão dentro do bloco static… comprovando que o compilador transforma o código, condizente com o que eu falei anteriormente. E eu já sabia disso e nao precisava nem perder meu tempo, só que como eu sou muito chato… resolvi por a prova…
Inclusive essa maneira de comprovar o que eu falei, também tirei da minha cabeça…
Não sei se vc consegue enchergar isso rod… ou se está muito avançado para o seu conhecimento…
[/quote]
Me agradeça por ser exigente. Se não fosse por mim você não chegaria até onde chegou. E você não é chato. Chato sou eu. Você é acomodado. Se sentiu ofendido quando seu conhecimento inquestionável foi questionado. Então resolveu correr atráz e sair do marasmo. E não duvide: Haverá (muitas) ocasiões em que você terá plena certeza do que está falando, alguém irá pedir uma prova real, e você acabará por descobrir que estava enganado. Afinal de contas, convenhamos, existem coisas que são “muito avançadas”, “até mesmo” pra você, ó mestre.
Como agradecimento, deixo outro ensinamento:
“Enchergar”, na verdade, se escreve com X. (No lugar do CH, não vá se confundir).
Viu só como não dá pra confiar em tudo que você “acha que tá certo” e que “tirou da cabeça”?
Dureza viu… ainda tenho que escutar isso…
E eu sou acomodado… to vendo isso mesmo…
[quote=rogelgarcia]Dureza viu… ainda tenho que escutar isso…
E eu sou acomodado… to vendo isso mesmo…
[/quote]
Faltou o obrigado.
Humildade é uma grande virtude que falta em alguém nessa discussão.
Se pra responderem a pergunta briga desse jeito imagina se tivesse que suportar alguns analistas que eu conheço.
Essa mala tinha que ser banida do GUJ… Se vc´s não perceberam esse cara não quer obter conhecimento e sim tumultuar o forum…
esse rod.attack é uma criança arrogante.
[quote=Poneis123]esse rod.attack é uma criança arrogante.
[/quote]
Arrogante é pouco…
puts ainda o cara ta queimando o spfc =(
[quote=rod.attack]Tenho o seguinte código:
class Teste{
private static final Object o = new Object();
}
class Main{
public static void main (String ...args){
new Teste();
new Teste();
}
}
O objeto “o” é uma variável de classe, por ser marcada com static. Isso quer dizer que o compilador traduz a linha
private static final Object o = new Object();
para
private static final Object o;
static{
o= new Object();
}
É isso?
Porque se não for isso, a cada instanciação de objetos da classe Teste o construtor irá rodar e fazer com que a referência “o” aponte para um novo objeto, o que não seria permitido, já que “o” é marcado com final.
Como é que funciona isso?[/quote]
Dá uma olhada [google] aqui [/google]!
[quote=rod.attack][quote=davidtiagoconceicao]Atributos com o modificador static não são atributos de objeto, são atributos de classe. Portanto, todas as instâncias da classe Teste apontarão para a mesma instância do objeto.
Mais do que isso, não é necessário sequer haver uma instância de Teste para que o objeto o exista, ele pode ser obtido diretamente da classe (Teste.o, desconsiderando os modificadores de permissão).[/quote]
Foi exatamente isso que eu disse. Minha pergunta vai um pouco além - eu perguntei se o compilador transforma o código inicial em um bloco de inicialização estático. Quando for responder em fóruns em geral, é interessante que você o faça com foco na pergunta do autor do tópico, e não simplesmente para mostrar seu conhecimento. Assim você poupa o seu e o meu tempo.[/quote]
Nossa cara… num dá pra segurar… vou falar…
Velho… em um tópico fiz uma pergunta plausível e conceitual a respeito de static… e você me mandou ir para o google… você faz essa pergunta inútil e ainda quer passar por cima da galera que tá a mais tempo aqui do que você e diga-se de passagem… que conhece MUITO mais do que você…
Outra coisa… Você diz que deveria ter procurado outro forum, concordo PLENAMENTE contigo… e para mim, esse tipo de argumentação é passível de exclusão.
Aprenda a ser mais humilde.
ah! mais uma vez… como já postei ai em cima… Consulte o google!
até nunca
:evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil:
HUAhuahu
to rindo d+
Cara,
vc é babaca hein… se não é o que realmente quer… apenas fala que ainda não chegou no que queria ao invés de dar patata…
o cara pensa que é arrogante e sabichão igual o dr house
[quote=ralphsilver]Cara,
vc é babaca hein… se não é o que realmente quer… apenas fala que ainda não chegou no que queria ao invés de dar patata…
o cara pensa que é arrogante e sabichão igual o dr house[/quote]
HUAhuahu
dr house! kkkkkkkkkkkkkk
ri pouco!
[quote=ralphsilver]Cara,
vc é babaca hein… se não é o que realmente quer… apenas fala que ainda não chegou no que queria ao invés de dar patata…
o cara pensa que é arrogante e sabichão igual o dr house[/quote]
Dá Vicodin pra ele… uaHauhaUAHua (só ri quem assisti dr house) :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:
rod, você é muito arrogante.
Falta muita humildade em você.
Se não responderam de acordo com o que você esperava apenas fale que não era o que queria e pronto.
Se você é tão bom quanto diz, porque estava tirando dúvidas aqui?
Tem coisa que não tem como ler e ficar quieto, cara mala de mais.
(eu + ri)² = eu² + 2xeu*ri + ri²