En Java 9, la représentation interne de String a été modifiée de char array à byte array. Considérons que je suis en train de sérialiser mes données String sur un système exécutant Java 9, puis que je tente de les désérialiser sur un système Java 8. Considérez également la situation inverse.Java 9 Compact String Sérialisation-désérialisation et transfert de données
Une autre situation à laquelle je peux penser est la transmission de données String sur des systèmes Java 8 et Java 9 utilisant RMI ou JMS.
Comment ces scénarios pourraient-ils fonctionner? Toutes les méthodes de gestion de String sont-elles mises à jour pour gérer de tels scénarios?
La chaîne a une représentation spéciale dans les flux de sérialisation. Cette représentation ne change jamais. Vous pouvez donc sérialiser et désérialiser les chaînes en toute sécurité. Voir https://docs.oracle.com/javase/6/docs/platform/serialization/spec/protocol.html#stream-elements – ZhekaKozlov