retorno - tipos de metodos java




Existe alguma razão de desempenho para declarar os parâmetros do método final em Java? (4)

A palavra-chave final não aparece no arquivo de classe para variáveis ​​e parâmetros locais, portanto, não pode afetar o desempenho do tempo de execução. O único uso é esclarecer a intenção dos codificadores de que a variável não seja alterada (o que muitos consideram uma razão duvidosa para seu uso) e lidar com classes internas anônimas.

Há muita discussão sobre se o modificador final no próprio método possui algum ganho de desempenho, já que os métodos serão embutidos pelo compilador de otimização no tempo de execução, independentemente do modificador. Neste caso, ele também deve ser usado apenas para restringir a substituição do método.

Existe alguma razão de desempenho para declarar os parâmetros do método final em Java?

Como em:

public void foo(int bar) { ... }

Versus:

public void foo(final int bar) { ... }

Assumindo que bar é somente lido e nunca modificado em foo() .


Apenas mais um ponto que acima de usar variáveis ​​locais não-finais declaradas dentro do método - a instância da classe interna pode sobreviver ao quadro da pilha, então a variável local pode desaparecer enquanto o objeto interno ainda está vivo


Eu suponho que o compilador poderia possivelmente remover todas as variáveis ​​finais estáticas privadas que tem um tipo primitivo, como int, e inline-los diretamente no código apenas como com uma macro C ++.

No entanto, eu não tenho idéia se isso é feito na prática, mas isso poderia ser feito para economizar alguma memória.


O único benefício para um parâmetro final é que ele pode ser usado em classes aninhadas anônimas. Se um parâmetro nunca for alterado, o compilador já detectará isso como parte de sua operação normal, mesmo sem o modificador final. É muito raro que bugs sejam causados ​​por um parâmetro ser inesperadamente atribuído - se seus métodos são grandes o suficiente para precisar desse nível de engenharia, diminua-os - os métodos que você chama não podem alterar seus parâmetros.





final