Tecnología

Inicio

¿Por qué son Java Cuerdas inmutable?

¿Por qué son Java Cuerdas inmutable?


Los desarrolladores de Java que fue diseñada la clase "Cadena" como un objeto inmutable. "Inmutable" significa que el valor de la clase no puede cambiar una vez que el programador crea una instancia del objeto. Si bien podría resultar beneficioso utilizar siempre un objeto de cadena que tiene un valor cambiante, algunas de las razones explican por qué este no es el caso. cadenas inmutables prestan a utilizar en programas multihilo, aumentar la seguridad del programa, minimizar el uso de memoria, y trabajar mejor como valores en las estructuras de datos tales como tablas hash.

Las cadenas en los programas multihebra

Programas se llaman multi-hilo cuando se reproducen lo que se conoce como "hilos" que se ejecutan código al mismo tiempo. Cuando un programa genera múltiples hilos, esos hilos trabajan a menudo en las mismas variables en diferentes momentos. El peligro es cuando dos hilos comparten una variable, y un hilo cambia su valor, mientras que el segundo todavía lo utiliza. Un mecanismo de "bloqueo" por lo general guarda variables en situaciones de roscado. Con una cadena inmutable, sin embargo, un hilo no está preocupado con el valor de la variable.

Seguridad

La inmutabilidad de las cadenas también ayuda con ciertos problemas de seguridad. Cuando un usuario introduce credenciales de inicio de sesión en un sitio web, es teóricamente posible para él para cambiar el valor de la cadena de nombre de usuario o contraseña antes de que pase al sistema. Si esto sucede, entonces ese usuario puede inyectar código malicioso en el sistema que él o ella está registrando a. Como las cadenas son inmutables, sin embargo, esto no es posible.

Reducir al mínimo el uso de memoria

Cuando un programador crea un objeto de cadena, que objeto reside en un punto fijo en la memoria, y el nombre de la variable sirve como su "referencia". Debido a que la referencia a la memoria y la memoria lo que contiene son dos cosas separadas, esto significa que otros nombres de variables también pueden hacer referencia a la misma posición de memoria. Por eso, cuando se requieren copias de una cadena, diferentes variables pueden hacer referencia a la misma cadena inmutable, y ya que no va a cambiar, no tienen necesidad de crear copias de la misma cadena.

El uso en estructuras de datos HashTable

Tablas hash son llamados "diccionarios", ya que utilizan pares de palabra clave y valor para hacer búsquedas en la estructura de datos más fácil. Las cadenas suelen hacer referencia a un valor (por ejemplo, "nombre" => "Robert" o "edad" => 25). Dado que las cadenas son inmutables, un programador no tiene que preocuparse por la palabra clave de un cambio de valor, y la pérdida del acceso a ese valor.