Palabra clave transitoria en Java: ¿Qué es y cómo funciona?
Publicado: 2022-03-06Como todos los demás lenguajes de programación, el lenguaje de programación Java tiene una lista de palabras reservadas que tienen un significado específico. Este conjunto de 52 palabras reservadas por Java se conocen como palabras clave. Dado que tienen un significado predefinido, los programadores no pueden usar palabras clave para nombrar sus clases, objetos, variables y otros identificadores. Una de estas 52 palabras clave es la palabra clave transitoria, ¡que será el foco de nuestro blog!
Tabla de contenido
Comprender la palabra clave transitoria en Java
Transient es uno de los modificadores más útiles presentes en el lenguaje de programación Java. La función principal de la palabra clave transitoria viene en casos de serialización. El modificador transitorio se puede aplicar a los miembros de campo de una clase para desactivar la serialización en estos miembros específicos.
En pocas palabras, el programador puede usar la palabra clave transitoria en Java para evitar la serialización. Si algún objeto particular de cualquier estructura de datos ha sido definido como transitorio por el programador, no será serializado. Como resultado, puede usar la palabra clave transient para indicar a la JVM (Java Virtual Machine) que su variable transitoria no formará parte de ningún estado persistente del objeto.
Tratemos de entender el funcionamiento de la palabra clave transitoria en Java utilizando un ejemplo muy básico. Primero, crearemos una clase de dirección y definiremos tres atributos para la clase: streetName, areaName y houseNumber. Lo mantendremos transitorio ya que no queremos almacenar o guardar el tercer atributo: número de casa.
dirección de clase implementa serializable { cadena privada nombre de la calle; cadena privada nombre del área; transitorio privado Número de casa de cadena;
//Setters y Getters } |
Ahora serialicemos una instancia de la clase Address.
prueba { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(“addressinfo.ser”)); Dirección a = nueva Dirección(); a.setstreetName(“MIG”); a.setareaName(“Vikas Nagar”); emp.sethouseNumber(“110”); //Serializar el objeto oos.writeObject(a); oos.cerrar(); } captura (Excepción e) { Sistema.salida.println(e); } |
Si nuestro código funciona correctamente, la información de 'houseNumber' no se habría guardado ya que la definimos como transitoria. Ahora, intentaremos deserializarlo nuevamente en el objeto original y ver si la información se guardó o no.
prueba { ObjectInputStream o = new ObjectInputStream(new FileInputStream(“addressinfo.ser”)); //Leer el objeto de vuelta Dirección readAddressInfo = (Dirección) o.readObject(); System.out.println(readAddressInfo.getstreetName()); System.out.println(readAddressInfo.getareaName()); System.out.println(readAddressInfo.gethouseNumber()); o.cerrar(); } captura (Excepción e) { Sistema.salida.println(e); } |
Si ejecuta el programa Java anterior, recibirá el siguiente resultado:
mig
Vikas Nagar
nulo
Como puede ver, la información de 'número de casa' no se guardó en un estado permanente debido a la serialización, y es por eso que recibimos el valor 'nulo' como salida. Esta es precisamente la razón por la que se usa la palabra clave transient: para almacenar valores en variables de una manera que no es permanente sino transitoria.
Casos de uso para la palabra clave 'transitoria' en Java
Ahora que comprende la palabra clave transitoria y lo que hace, la siguiente pregunta lógica que surge es: ¿cuándo usamos la palabra clave transitoria?
Ampliemos nuestros conocimientos sobre la palabra clave transitoria analizando en profundidad algunas de las situaciones en las que se beneficiaría del uso de palabras clave transitorias.
Aquí hay algunos casos de uso comunes para que los tenga en cuenta:
- El primer caso de uso de la palabra clave transitoria es durante situaciones en las que puede tener campos de datos que se calculan o se derivan de otros campos dentro de la instancia de la clase. Como resultado, estos campos deben calcularse mediante programación y dependen de otros valores. Es por eso que, en lugar de tener dichos campos persistentes, podrían no serializarse utilizando la palabra clave transitoria. Los ejemplos de dichos valores transitorios calculados a partir de otras cifras podrían incluir valores basados en marcas de tiempo, valores basados en porcentajes, etc. En todos estos casos, está calculando el valor de una variable en función de los valores existentes actualmente.
- Otro caso de uso importante podría ser cuando está trabajando con cualquier tipo de información segura que, en cualquier caso, no debería filtrarse fuera de la JVM, entonces puede no serializarse utilizando la palabra clave transitoria.
- Los campos que no están marcados como "serializables" dentro del Kit de desarrollo de Java se pueden usar con una palabra clave transitoria. Una cosa importante a tener en cuenta aquí es que todas las clases de Java que no implementan la interfaz serializable no se pueden serializar ya que no se les hace referencia dentro de ninguna clase serializable. Como resultado, estos pueden arrojar "java.io.NotSerializableException" si no se marcan como "transitorios" antes de serializar la clase principal.
- Y finalmente, hay algunas ocasiones en las que no tiene sentido serializar algunos campos. Por ejemplo, si agregó una referencia de registrador en su código, no querrá serializar esa información. Debe serializar la información que representa el estado de una instancia. Los registradores, por otro lado, no representan ningún estado, por lo que no sirve de nada serializarlos. Por lo tanto, deben usarse con la palabra clave transient.
En conclusión
Los casos de uso discutidos anteriormente no son de ninguna manera exhaustivos. Experimente con la palabra clave transitoria y proponga sus propios casos de uso. Después de todo, las palabras clave están hechas para los programadores, y podrá hacer la mayoría de las palabras clave solo cuando sepa cómo funcionan y qué significan.
Con eso, llegamos al final de este blog sobre palabras clave transitorias en Java. Este es uno de los conceptos más introductorios que debe buscar dominar para crecer en su carrera de desarrollo de software. ¡El campo del desarrollo de software es extremadamente dinámico pero muy acogedor si está listo para ponerse cómodo y hacer su mejor esfuerzo!
En upGrad, hemos asesorado y guiado a estudiantes de todo el mundo, pertenecientes a diferentes dominios, y los hemos ayudado a iniciar sus carreras en el desarrollo de software. Nuestro PGP en Desarrollo de Software - Especialización en Desarrollo Full Stack está diseñado para principiantes y profesionales experimentados. Además de tutores expertos y material de aprendizaje de última generación, también obtiene compañeros talentosos, apoyo integral de colocación y tutoría individual con líderes de la industria. ¡Así que echa un vistazo al contenido del curso y regístrate pronto!
1. ¿Cuál es la palabra clave transitoria en Java?
Las palabras clave transitorias en Java se pueden usar para evitar la serialización de un objeto. Al usar palabras clave transitorias, se asegura de que el valor contenido por el campo en particular no sea persistente.
2. ¿Con qué elementos en Java se puede usar la palabra clave transient?
Puede usar la palabra clave transitoria en Java para no serializar una clase, una variable, un objeto o un campo.
3. ¿En qué se diferencian la palabra clave transitoria y la palabra clave volátil en Java?
La palabra clave transitoria se usa para evitar el proceso de serialización, mientras que una palabra clave volátil se usa con una variable para que no se almacene en la memoria principal.