Final:
Final permite controlar se seus membros, métodos ou classes podem ser substituídos ou herdados.
Quando você define uma variável em uma classe, adicione a palavra -chave final antes dela, isso significa que uma vez que essa variável é inicializada, ela não pode ser alterada , suas referências não podem mais ser alteradas. Sua inicialização pode estar em dois lugares, um é a sua definição e a outra é que, no construtor, só se pode escolher um dos dois.
O programa a seguir simplesmente demonstra o uso geral da Final:
Public class Test {Final Int T = 1;
Outro uso é definir os parâmetros no método como final. . Quando você não precisa alterar a variável de objeto como um parâmetro no método, o uso explicitamente é declarado, o que o impedirá de modificar e afetar involuntariamente o método de chamada.
Além disso, ao usar variáveis de parâmetros no método na classe interna, essa variável de parâmetro deve ser declarada final antes de poder ser usada, conforme mostrado no código a seguir:
classe pública teste {void print (string final) {classe innertest {innertest () {System.out.println (str); {Teste de teste = novo teste ();
Há duas razões pelas quais o método final declara o método como final. A classe herdada desta classe. O segundo é um mecanismo que permite ao compilador converter todas as chamadas para esse método em chamadas embutidas (em linha). . Portanto, você deve usar o final para definir o método com cautela.
Aula final Quando você usa o final de uma aula, você precisa pensar com cuidado, porque uma aula final não pode ser herdada por ninguém, o que significa que essa classe é uma aula de folhas em uma árvore de herança, e essa classe o design foi considerado perfeito sem modificação ou extensão. Para os membros da classe final, você pode defini -la como final ou não final. Para métodos, como a classe pertence ao final, eles naturalmente se tornam finais. Você também pode adicionar explicitamente uma final ao método na classe final, mas isso obviamente não faz sentido.
Finalmente:
A palavra -chave finalmente é a melhor adição ao modelo de manuseio de exceção Java. A estrutura finalmente permite que o código sempre seja executado, independentemente de ocorrer a exceção. Use finalmente para manter o estado interno de um objeto e limpar os recursos não-memórias. Sem finalmente, seu código será confuso. Por exemplo, o código a seguir ilustra como você escreve código para recursos não-memorys gratuitos sem usar finalmente:
public void writefile (string filepath, string filename, string args) lança ioexception {FileWriter fw = new FileWriter (filepath + fileName); ();
Este código cria um objeto FileWriter e chama o método de gravação. Antes de sair do método, você deve fechar o objeto FileWriter para evitar vulnerabilidades de recursos. Para realizar essa tarefa, chamamos de fechamento em // 2, que é a última declaração do método. Mas o que acontece se ocorrer uma exceção no bloco de tentativas? Nesse caso, a chamada fechada em // 2 nunca acontece. Portanto, você deve pegar essa exceção e inserir outra chamada para fechar em // 1 antes de reemitir esta exceção. Isso garante que o objeto FileWriter seja fechado antes de sair do método. Escrever código como esse é complicado e propenso a erros, mas é essencial sem finalmente. Com finalmente, o código anterior pode ser reescrito no seguinte formulário:
public void writefile (string filepath, nome de string, string args) lança IoException {FileWriter FW = new FileWriter (FilePath + FileName); fw .close ();
O bloco finalmente garante que o método de fechamento seja sempre executado, independentemente de uma exceção ser emitida dentro do bloco de tentativa. Portanto, é garantido que o método de fechamento seja sempre chamado antes de sair do método. Dessa forma, você pode ter certeza de que o objeto FileWriter está fechado e que você não vazou recursos.
finalizar:
De acordo com a especificação do idioma Java, a JVM garante que esse objeto seja inacessível antes de chamar a função finalizada, mas a JVM não garante que essa função seja chamada. Além disso, a especificação também garante que a função finalizada seja executada no máximo uma vez.
Geralmente, a Finalize é usada para liberar alguns recursos que não são fáceis de controlar e são muito importantes, como algumas operações de E/S e conexões de dados. A liberação desses recursos é muito crítica para todo o aplicativo. Nesse caso, os programadores devem gerenciar principalmente esses recursos através do próprio programa (incluindo a liberação) e complementar o método de liberação de recursos com a função finalizada como um suplemento para formar um mecanismo de gerenciamento de seguros duplo, em vez de depender apenas para finalizar para liberar recursos.
Resumir
Final - Modificador (palavra -chave) Se uma classe for declarada final, significa que ela não pode derivar novas subclasses e não pode ser herdada como uma classe pai. Portanto, uma classe não pode ser declarada abstrata e final. Declarar variáveis ou métodos como final pode garantir que eles não sejam alterados durante o uso. As variáveis declaradas como final devem ter um valor inicial quando declaradas e só podem ser lidas em referências futuras e não podem ser modificadas. Os métodos declarados como final também podem ser usados apenas e não podem ser sobrecarregados.
Finalmente - um bloco final é fornecido para executar qualquer operação de compensação quando a exceção é processada. Se uma exceção for lançada, a cláusula de captura correspondente será executada e o controle entrará no bloco finalmente (se houver).
Finalize - Nome do método. A tecnologia Java permite o uso do método Finalize () para fazer o trabalho de limpeza necessário antes que o coletor de lixo limpe os objetos da memória. Este método é chamado pelo coletor de lixo ao determinar que o objeto não é referenciado. É definido na classe de objeto, portanto, todas as classes a herdam. A subclasse substitui o método finalize () para organizar recursos do sistema ou executar outros trabalhos de limpeza. O método finalize () é chamado no objeto antes que o coletor de lixo o exclua.