Este artigo analisa o uso de palavras -chave transitórias em Java. Compartilhe para sua referência. A análise específica é a seguinte:
O Java possui um recurso da serialização. Isso pode facilitar muito algumas operações na rede, mas, ao mesmo tempo, porque envolve problemas de segurança, não se destina a armazenar tudo na classe (porque, dessa maneira, outros podem conhecer o conteúdo da classe através da serialização). Podemos usar a palavra -chave transitória, o que significa temporário, ou seja, ela não será serializada localmente com a classe; portanto, após a restauração, as variáveis definidas por essa palavra -chave não existem mais.
Geralmente, os programas que escrevem exigem que informações específicas sejam persistidas ou salvas no disco para uso por um programa ou em outra execução do mesmo programa. Suporte para a serialização do objeto. No entanto, é possível que nem todos os domínios precisem ser salvos. .
Primeiro, vejamos algum código de serialização Java:
classe pública LogingInfo implementa Java.io.Serializable {Data privada LoggingDate = new Date (); ) {String senha = null; Data: " + loggingdate.toString () +"/n senha: " + senha;}}Agora, criamos uma instância desta classe, serializamos e, em seguida, escrevemos esse objeto serializado como o disco.
LogingInfo loginfo = novo loginfo ("Mike", "Mechanics"); (Loginfo); ;Se executarmos esse código, notaremos que o objeto Read-Back (des-serrializando)) da senha de impressão em disco como "não definido". Este é o resultado correto que esperamos quando definimos o domínio PWD como transitório.
Agora, vejamos os possíveis problemas que podem surgir do tratamento descuidado de domínios transitórios. Suponha que modifiquemos a definição da classe e forneçamos um valor padrão ao domínio transitório, o código é o seguinte:
classe pública GuestLogingInfo implementa Java.io.Serializable {Data privada LoggingDate = new Date (); {// o mesmo que acima}} Agora, se passarmos por uma instância do GuestLogingInfo, escreva -o no disco e o leia fora do disco, ainda vemos a senha de impressão do objeto Readback como "não definido".
Quando uma instância de uma classe é lida no disco, o construtor desta classe não é realmente executado.
Em vez disso, um estado persistente de um objeto dessa classe é carregado e esse estado é atribuído a outro objeto dessa classe.
Espero que este artigo seja útil para a programação Java de todos.