*   >> Lecture Éducation Articles >> tech >> développement web

Avantage et inconvénients de cordes mise en œuvre JAVA

ifié par la suite, le tableau de char dans ce StringBuffer est copié dans un nouveau tableau de caractères qui est maintenant référencé par le StringBuffer. L'objet String conserve la référence au tableau omble précédemment partagé. Cela signifie que la copie de tête peut se produire à des points inattendus dans l'application. Au lieu de la copie se produisant à la méthode toString () appel, comme on pouvait s'y attendre, toute modification ultérieure de l'StringBuffer provoque un nouveau tableau de char à être créé et une copie de tableau à être effectuée.

Pour faire la copie se produire en tête à des moments prévisibles, vous pouvez exécuter explicitement une méthode qui fait la copie se produire, comme StringBuffer.setLength (). Cela permet StringBuffers être réutilisés à des inconvénients de performance.The plus prévisibles de la mise en œuvre de cordes sont1. Ne pas être capable de dériver cordes signifie qu'il est impossible d'ajouter un comportement à cordes pour votre propre besoins2. Le point précédent signifie que tous les accès doit se faire par l'ensemble restreint de méthodes Cordes actuellement disponibles, en imposant overhead.

3 supplémentaire. La seule façon d'augmenter le nombre de méthodes permettant la manipulation efficace de caractères chaîne est de copier les caractères dans votre propre réseau et de les manipuler directement, auquel cas cordes impose une étape supplémentaire et objets supplémentaires Vous ne pouvez pas need.4. Char tableaux sont plus rapides à traiter directly.5. Le couplage étroit avec le tampon chaîne peut conduire à l'utilisation de mémoire étonnamment élevé.

Lorsque StringBuffer toString () crée une chaîne, le tableau sous-jacent actuel détient la chaîne, indépendamment de la taille de la matrice (ie, la capacité de la StringBuffer). Par exemple, un StringBuffer avec une capacité de 10.000 caractères peut construire une chaîne de 10 caractères. Toutefois, cette chaîne de 10 caractères continue à utiliser un tableau 10.000-char pour stocker les 10 caractères.

Si le StringBuffer est maintenant réutilisé pour créer une autre chaîne de 10 caractères, le StringBuffer crée d'abord un nouveau réseau interne 10000-char pour construire la chaîne avec; puis la nouvelle chaîne utilise également ce tableau 10.000-char pour stocker les 10 caractères. De toute évidence, ce processus peut se poursuivre indéfiniment, en utilisant de grandes quantités de mémoire où pas expected.The avantages de chaînes peuvent être résumées comme

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.