10 cosas que todo programador de Java debe saber sobre cadenas en Infocampus

Dado el uso intensivo de Java String en casi cualquier tipo de proyecto, se vuelve aún más importante conocer detalles sutiles sobre String. Aunque he compartido mucho del artículo relacionado con String que ya está aquí en Javarevisited, este es un esfuerzo para juntar algunas de las características de String. En este tutorial veremos algunos puntos importantes sobre Java, que vale la pena recordar. También puede consultar mi publicación anterior 10 preguntas Java avanzadas para saber más sobre String.

Aunque traté de cubrir muchas cosas, definitivamente hay pocas cosas que podría haber pasado por alto; por favor avíseme si tiene alguna pregunta o duda sobre la funcionalidad java.lang.String y trataré de abordarlas aquí.

1) Las cadenas no terminan nulas en Java.

A diferencia de C y C ++, en Java no termina con el carácter nulo. En cambio, son objetos en Java y están respaldados por una matriz de caracteres. Puede obtener la matriz de caracteres utilizada para representar en Java llamando al método Charjar () de la clase java.lang.String de JDK.

2) Las cadenas son inmutables y definitivas en Java

Las cadenas son inmutables en Java significa que una vez creado no puede modificar el contenido de String. Si lo modifica utilizando toLowerCase (), toUpperCase () o cualquier otro método, siempre resulta en nuevo. Como es definitiva, no hay forma de que alguien pueda ampliar o anular ninguna funcionalidad. Ahora, si estás confundido, por qué String es inmutable o definitivo en Java. revisa el enlace.

3) Las cadenas se mantienen en String Pool

Como dije anteriormente, hay clases especiales en Java y todas literales, por ej. "abc" (todo lo que está dentro de las comillas dobles son literales en Java) se mantiene en un grupo de cadenas separado, una ubicación de memoria especial dentro de la memoria de Java, más precisamente dentro de PermGen Space. Cada vez que crea un objeto nuevo usando literal, JVM primero comprueba el grupo de cadenas y si hay un objeto con contenido similar disponible, lo devuelve y no crea un nuevo objeto. JVM no realiza la comprobación del grupo de cadenas si crea un objeto utilizando un operador nuevo.

4) Use métodos iguales para comparar cadenas en Java

La clase de cadena anula el método igual y proporciona una igualdad de contenido, que se basa en los caracteres, el caso y el orden. Entonces, si quiere comparar dos objetos, para verificar si son iguales o no, siempre use el método equals () en lugar del operador de igualdad. Al igual que en el ejemplo anterior, si usamos el método igual para comparar objetos, serán iguales entre sí porque todos contienen los mismos contenidos.

5) Utilice los métodos indexOf () y lastIndexOf () o coincidencias (regex de cadena) para buscar dentro de String

clase en Java proporciona un método conveniente para ver si existe un carácter o sub- o un patrón en el objeto actual. Puede usar indexOf () que devolverá la posición del carácter o, si existe en el objeto actual o -1 si el carácter no existe en. lastIndexOf es similar pero busca desde el final. .match (regex) es aún más poderoso, lo que le permite buscar dentro de un patrón de expresión regular.

6) Use Sub para obtener parte de en Java

Java proporciona otro método útil llamado sub (), que se puede usar para obtener partes de. básicamente usted especifica el índice de inicio y final y el método substring () devuelve el carácter de ese rango. El índice comienza desde 0 y va 1. Por cierto .length () devuelve el número de caracteres en String, incluidos espacios en blanco como tabulación, espacio. Un punto que vale la pena recordar aquí es que el sub también está respaldado por la matriz de caracteres, que es utilizada por el original. Esto puede ser peligroso si el objeto original es muy grande y es muy pequeño, porque incluso una pequeña fracción puede contener referencias de una matriz completa y evita que se recolecte basura, incluso si no hay otra referencia para ese particular.

7) "+" está sobrecargado para la concatenación de cadenas

Java no es compatible con la sobrecarga del operador, pero es especial y el operador + se puede utilizar para concatenar dos. Incluso puede usarse para convertir int, char, long o double para convertir en simplemente concatenar con vacío. "Internamente + se implementa usando StringBuffer antes de Java 5 y StringBuilder desde Java 5. Esto también trae un punto de uso de StringBuffer o StringBuilder para manipulando

8) Use trim () para eliminar espacios en blanco de

Java proporciona el método trim () para eliminar el espacio en blanco de ambos extremos. Si trim () elimina espacios en blanco, devuelve uno nuevo; de lo contrario, lo devuelve. Junto con trim () también proporciona el método replace () y replaceAll () para reemplazar caracteres. El método replaceAll incluso soporta expresiones regulares.

9) Usa split () para dividir usando expresión regular

Java es rico en funciones. tiene métodos como split (regex) que pueden tomar cualquiera en forma de expresión regular y dividir el basado en eso. particularmente útil si se trata de archivos separados por comas (CSV) y desea tener una parte individual en una matriz.

10) No almacene datos confidenciales

presentar una amenaza a la seguridad si se usa para almacenar datos confidenciales como contraseñas, SSN o cualquier otra información confidencial. Dado que es inmutable en Java, no hay manera de que pueda borrar los contenidos de y porque se mantienen en el grupo (en el caso del literal String) permanecen más tiempo en el heap de Java, lo que expone el riesgo de ser visto por cualquiera que tenga acceso a la memoria Java. como leer desde el volcado de memoria.