[RESOLVIDO] Acessar método sem atribuir instância à um objeto Java

Há algum ganho ou perda de performance de trocar o seguinte trecho de código:

Teste teste = new Teste();
teste.metodoTeste();

Por esse?

new Teste()
   .metodoTeste();

Penso que sim,

pelo fato de que ao executar:

Teste teste = new Teste(),

estou alocando um objeto na memória.

E utilizando

new Teste()
   .metodoTeste()

estou alocando um objeto temporariamente.

Gostaria de saber a opinião de vocês estou certo ou isso não tem nada haver?

1 curtida

Tecnicamente falando os dois terão um objeto na memória e nenhum dos dois será temporário, pelo fato que você mencionou da forma de instânciação.

As duas formas estão corretas? SIM, mas particularmente gosto da primeira, porque, terei o acesso a variável teste e posso executar outros métodos, já no segundo não tem como pegar a instância, e a sua instância não será temporária, será igual a do primeiro jeito.

Opinião: use sempre a primeira

1 curtida

Vai ter o mesmo efeito, pois você não faz nada com a variável teste após invocar o método, ou seja, teste também é um objeto temporário.
Você só vai deixar teste alocado se você referenciar o objeto em mais locais, senão, terminado a execução de seu método, assim que o GC tiver um tempinho, ele desaloca o objeto que havia sido instanciado.
Dica: instância e objeto são sinônimos.
Você não atribui uma intância a um objeto.
Um objeto é uma intância de uma classe.

2 curtidas