Este artículo analiza el uso de palabras clave transitorias en Java. Compártelo para su referencia. El análisis específico es el siguiente:
Java tiene una característica de la serialización. Esto puede facilitar enormemente algunas operaciones en la red, pero al mismo tiempo, debido a que implica problemas de seguridad, no tiene la intención de almacenar todo en la clase (porque de esa manera, otros pueden conocer el contenido en la clase a través de la serialización). Podemos usar la palabra clave transitorio, que significa temporal, es decir, no se serializará localmente con la clase, por lo que después de restaurar, las variables definidas por esta palabra clave ya no existen.
Por lo general, los programas que escribimos requieren que la información específica sea persistida o guardada en el disco para el uso de un programa o en otro programa del mismo programa. Soporte para la serialización del objeto. Sin embargo, es posible que no todos los dominios necesiten ser guardados. .
Primero, veamos algún código de serialización de Java:
Public Class LoggingInfo ) {String Password = NULL; Fecha: " + LoggingDate.ToString () +"/n contraseña: " + contraseña;}}Ahora creamos una instancia de esta clase, la serializamos y luego escribimos este objeto serializado como el disco.
LoggingInfo Loginfo = new LoggingInfo ("Mike", "Mecánica"); (Loginfo); ;Si ejecutamos este código, notaremos que el repleto de objeto (desestructor)) desde el disco imprime la contraseña como "no establecido". Este es el resultado correcto que esperamos cuando definimos el dominio PWD como transitorio.
Ahora, veamos los posibles problemas que pueden surgir del tratamiento descuidado de los dominios transitorios. Suponga que modificamos la definición de clase y proporcionamos un valor predeterminado al dominio transitorio, el código es el siguiente:
Public ClassLoggingInfo Implementa java.io.serializable {private fechin {// Igual que el anterior}} Ahora, si pasamos a través de una instancia de invitados de LoggingInfo, escríbelo en el disco y lo lee fuera del disco, todavía vemos la contraseña de impresión del objeto de lectura como "no establecido".
Cuando se lee una instancia de una clase del disco, el constructor de esta clase no se ejecuta realmente.
En cambio, se carga un estado persistente de un objeto de esta clase y este estado se asigna a otro objeto de esta clase.
Espero que este artículo sea útil para la programación Java de todos.