Résumé de la sérialisation et de la désérialisation Java : Avantages : Conserver les objets sur le disque ou le réseau. Transférez des objets et créez des copies d'objets. Inconvénients : utilise la réflexion, peut être lent. En fonction de l'implémentation, il peut y avoir des problèmes de compatibilité. Risque de sécurité, la désérialisation peut permettre l'injection et l'exécution de code arbitraire. Bonne pratique : désérialisez les objets provenant de sources fiables. Utilisez la signature et la vérification pour protéger les objets contre la falsification. Limitez les classes pouvant être désérialisées et utilisez un bac à sable pour exécuter le code de désérialisation.
Sérialisation et désérialisation Java : avantages et inconvénients
Sérialisation
Avantages :
Inconvénients :
Désérialisation
Avantages :
Inconvénients :
Cas pratique
Considérons une application de centre commercial qui doit stocker les détails des commandes dans une base de données afin de pouvoir les récupérer ultérieurement. Voici les étapes à suivre pour conserver un objet de commande à l'aide de la sérialisation :
// OrdersService.java import java.io.FileOutputStream; import java.io.ObjectOutputStream; import java.util.List; public class OrdersService { public void saveOrders(List<Order> orders) { try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("orders.ser"))) { oos.writeObject(orders); oos.flush(); } catch (Exception e) { // Handle exception } } }
Pour désérialiser une commande, vous pouvez utiliser le code suivant :
import java.io.FileInputStream; import java.io.ObjectInputStream; import java.util.List; // OrdersService.java public class OrdersService { public List<Order> getOrders() { List<Order> orders = null; try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("orders.ser"))) { orders = (List<Order>) ois.readObject(); } catch (Exception e) { // Handle exception } return orders; } }
Notes de sécurité
Lorsque vous utilisez la sérialisation et la désérialisation, suivez toujours ces bonnes pratiques :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!