10 choses que tout programmeur Java devrait savoir sur la chaîne à Infocampus

Compte tenu de l'utilisation intensive de Java String dans presque tous les types de projets, il devient encore plus important de connaître les détails subtils de String. Bien que j'ai déjà partagé beaucoup d'articles liés à String ici dans Javarevisited, ceci est un effort pour rassembler une partie de la fonctionnalité String. Dans ce tutoriel, nous verrons quelques points importants sur Java, qui méritent d'être rappelés. Vous pouvez également me référer à mes 10 questions Java avancées pour en savoir plus sur String.

Bien que j'aie essayé de couvrir beaucoup de choses, il y a certainement peu de choses, que j'ai peut-être manqué; S'il vous plaît laissez-moi savoir si vous avez des questions ou des doutes sur la fonctionnalité java.lang.String et je vais essayer de les aborder ici.

1) Les chaînes ne sont pas terminées en Java.

Contrairement à C et C ++, Java ne se termine pas avec un caractère nul. À la place sont Object dans Java et soutenu par un tableau de caractères. Vous pouvez obtenir le tableau de caractères utilisé pour représenter Java en appelant la méthode toCharArray () de la classe java.lang.String de JDK.

2) Les chaînes sont immuables et finales en Java

Les chaînes sont immuables dans Java cela signifie qu'une fois créé, vous ne pouvez pas modifier le contenu de String. Si vous le modifiez en utilisant toLowerCase (), toUpperCase () ou toute autre méthode, il en résulte toujours new. Puisque c'est définitif, personne ne peut étendre ou remplacer une quelconque fonctionnalité. Maintenant, si vous êtes perplexe, pourquoi String est immuable ou final en Java. checkout le lien.

3) Les chaînes sont maintenues dans String Pool

Comme je l'ai dit précédemment est une classe spéciale en Java et tout littéral, par ex. "abc" (tout ce qui est à l'intérieur de guillemets doubles est littéral en Java) est maintenu dans un pool de chaînes séparé, un emplacement de mémoire spécial dans la mémoire Java, plus précisément dans PermGen Space. Chaque fois que vous créez un nouvel objet à l'aide de literal, JVM vérifie d'abord String pool et si un objet avec un contenu similaire est disponible, qu'il le renvoie et ne crée pas un nouvel objet. JVM n'effectue pas de vérification de pool de chaînes si vous créez un objet en utilisant un nouvel opérateur.

4) Utiliser les méthodes Equals pour comparer la chaîne en Java

La classe String remplace la méthode equals et fournit une égalité de contenu basée sur les caractères, la casse et l'ordre. Donc, si vous voulez comparer deux objets, pour vérifier s'ils sont identiques ou non, utilisez toujours la méthode equals () au lieu de l'opérateur d'égalité. Comme dans l'exemple précédent, si nous utilisons la méthode equals pour comparer des objets, ils seront égaux entre eux parce qu'ils contiennent tous le même contenu.

5) Utiliser la méthode indexOf () et lastIndexOf () ou match (String regex) pour rechercher dans la chaîne

class en Java fournit une méthode pratique pour voir si un caractère ou sous-modèle ou un modèle existe dans l'objet courant. Vous pouvez utiliser indexOf () qui retournera la position du caractère ou, si elle existe dans l'objet courant ou -1 si le caractère n'existe pas. lastIndexOf est similaire mais il cherche à partir de la fin. .match (regex) est encore plus puissant, ce qui vous permet de rechercher un motif d'expression régulière à l'intérieur.

6) Utilisez Sub pour obtenir une partie de Java

Java fournit une autre méthode utile appelée sub (), qui peut être utilisée pour obtenir des parties de. En gros, vous spécifiez l'index de début et de fin et la méthode substring () renvoie le caractère de cette plage. L'index commence à partir de 0 et va 1. Au fait, .length () renvoie le nombre de caractères dans String, y compris les espaces blancs comme tabulation, espace. Un point qui mérite d'être rappelé ici est que sub est également sauvegardé par un tableau de caractères, qui est utilisé par l'original. Cela peut être dangereux si l'objet d'origine est très grand et très petit, car même une petite fraction peut contenir la référence du tableau complet et l'empêche d'être collecté sans même d'autre référence.

7) "+" est surchargé pour la concaténation de chaîne

Java ne supporte pas la surcharge de l'opérateur mais est spécial et l'opérateur + peut être utilisé pour concaténer deux. Il peut même être utilisé pour convertir int, char, long ou double pour convertir en simplement concaténer avec vide ".internally + est implémenté en utilisant StringBuffer avant Java 5 et StringBuilder à partir de Java 5. Cela amène aussi à utiliser StringBuffer ou StringBuilder pour manipuler.

8) Utilisez trim () pour supprimer les espaces blancs

Java fournit la méthode trim () pour supprimer l'espace blanc des deux extrémités. Si trim () supprime les espaces blancs, il renvoie un nouveau sinon il retourne la même chose. Avec trim () fournit également la méthode replace () et replaceAll () pour remplacer les caractères. La méthode replaceAll prend même en charge l'expression régulière.

9) Utilisez split () pour diviser en utilisant l'expression régulière

Java est riche en fonctionnalités. il a des méthodes comme split (regex) qui peut prendre n'importe quelle forme d'expression régulière et diviser le basé sur cela. particulièrement utile si vous traitez un fichier séparé par des virgules (CSV) et que vous vouliez avoir une partie individuelle dans un tableau.

10) Ne stockez pas de données sensibles

pose une menace de sécurité si elle est utilisée pour stocker des données sensibles comme des mots de passe, des numéros de sécurité sociale ou toute autre information sensible. Puisqu'il est immuable en Java, il n'y a aucun moyen d'effacer le contenu et comme ils sont conservés en pool (en cas de chaîne littérale), ils restent plus longtemps sur Java, ce qui expose tout le monde ayant accès à la mémoire Java comme lire à partir du vidage de la mémoire.