Diferença de com ou sem Static em conexao mysql

5 respostas Resolvido
Hundea

A diferença é uma é uma constante a outra poderá ser alterada? qual mais indicada?

private static final String PASSWORD = "password";

String password = "password";

5 Respostas

Jonathan_Medeiros

Isso! a variável que está definida como estática não pode ter seu valor alterado!
É recomendado que seja igual a primeira opção, pois uma senha de acesso ao banco de dados não é uma informação que se altera com alta taxa de recorrêcia.

Hundea

Mas não deveria apenas ser “final” sem o static? Pois não vejo outra utilidade para esse static senão acessá-lo diretamente via getter e setter, só que se torna confuso visto que fica static final… e final se não pode ser alterado por isso não vejo sentido em ter static.

Jonathan_Medeiros
Solucao aceita

Entendi, mas static e final tem suas diferenças!
O uso de final em variáveis, quer dizer que você não pode atribuir valor duas vezes à variável.
O uso de static quer dizer que a variável pertence a classe, e não ao objeto, isso quer dizer que todas as instâncias de uma classe enxergam a mesma variável, se uma delas modificar o valor vai refletir em todas as outras instâncias.
Para uma constante se usa os dois modificadores porquê o mesmo valor vai ser visto por todas instâncias da classe (static) e nunca poderá ser modificado depois de inicializado (final).

Hundea

você é o cara, valeu.

staroski

Os modificadores static e final possuem propósitos diferentes.

final serve para que o identificador só possa ser inicializado uma única vez.

static serve para compartilhar a mesma referência de memória entre todas as instâncias, quando você altera o conteúdo de uma variável static, isso é refletido para todas as instâncias da classe, pois na verdade é uma referência para o mesmo endereço de memória, por isso são chamadas de variáveis de classe.

Variáveis declaradas com final mas sem o static são chamadas de constantes dinâmicas, pois são inicializadas ao se instanciar a classe (ao criar um objeto).

Já as variáveis static são inicializadas quando a classe é carregada pela JVM.

Criado 28 de junho de 2019
Ultima resposta 28 de jun. de 2019
Respostas 5
Participantes 3