public class Contact implements Serializable {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- ¿Cuándo debo implementar la
Serializable
interfaz? - ¿Por qué hacemos eso?
- ¿Da alguna ventaja o seguridad?
java
serialization
theJava
fuente
fuente
Respuestas:
¿ De qué se trata esta cosa de "serialización"? :
Por lo tanto, implemente la
Serializable
interfaz cuando necesite almacenar una copia del objeto, envíela a otro proceso que se ejecute en el mismo sistema o en la red.Porque quieres almacenar o enviar un objeto.
Facilita el almacenamiento y el envío de objetos. No tiene nada que ver con la seguridad.
fuente
Implemente la
Serializable
interfaz cuando desee poder convertir una instancia de una clase en una serie de bytes o cuando crea que unSerializable
objeto puede hacer referencia a una instancia de su clase.Serializable
Las clases son útiles cuando desea persistir instancias de ellas o enviarlas por cable.Las instancias de
Serializable
clases se pueden transmitir fácilmente. Sin embargo, la serialización tiene algunas consecuencias de seguridad. Lea el Java efectivo de Joshua Bloch .fuente
La respuesta a esta pregunta es, quizás sorprendentemente, nunca , o de manera más realista, solo cuando se ve obligado a la interoperabilidad con el código heredado . Esta es la recomendación en Effective Java, 3rd Edition de Joshua Bloch:
El arquitecto jefe de Oracle, Mark Reinhold, dice que eliminar el actual mecanismo de serialización de Java es un objetivo a largo plazo.
Por qué la serialización de Java es defectuosa
Java proporciona como parte del lenguaje un esquema de serialización al que puede optar, utilizando la
Serializable
interfaz. Sin embargo, este esquema tiene varias fallas intratables y los diseñadores del lenguaje Java deberían tratarlo como un experimento fallido.Que hacer en su lugar
En su lugar, use un esquema de serialización que pueda controlar explícitamente. Tales como Protocol Buffers, JSON, XML o su propio esquema personalizado.
fuente