manejo funciones ejemplos concatenar clase caracteres cadenas cadena agregar java string char primitive-types

funciones - Cadena y matriz de caracteres en Java



funciones string java (6)

Soy un estudiante que acaba de pasar de C ++ a Java.

En Java, ¿cuál podría ser la razón principal para definir tipos de datos separados para matrices de cadenas y charlas? ¿Cuál es la diferencia entre los dos?

Como solo he estudiado C ++, hasta ahora tenía la impresión de que son lo mismo. Por favor aclare si es posible.


En Java, String es una clase de sistema básico que esencialmente envuelve un char[] . Hay varias razones por las cuales, para la mayoría de los usos, tener una clase completa es preferible a manejar matrices directamente:

  • String son inmutables; una vez que tenga una referencia a alguna String , sabrá que nunca va a cambiar.
  • String proporcionan métodos útiles que una matriz vacía no podría, como length() , y tienen una semántica de comparación claramente definida.
  • Nunca tendrás que lidiar con la terminación de cadena tú mismo.
  • Java tiene una excepción especial para la regla de "no sobrecarga del operador" para admitir la concatenación de cadenas (con + ).

Básicamente, es una buena práctica OO utilizar una clase para recopilar el comportamiento deseado y las estructuras de datos en el mismo lugar, y String cierra una matriz de caracteres con las operaciones útiles que desea realizar en una cadena.


Hay una diferencia semántica . Solo porque los datos se almacenan de la misma manera, esto no significa que es lo mismo. Dates y las Amounts también pueden tener la misma representación interna (anhelando una marca de tiempo o una cantidad fija de efectivo), pero no son lo mismo. La matriz de caracteres también podría significar una imagen de 16 bits.

En la orientación a objetos, es una buena práctica modelar objetos según lo que son y lo que pueden , y no según cómo almacenan internamente sus datos . Esto le permite encapsular los datos (y restringir o controlar el acceso (soporte del observador) con getters / setters, o incluso hacer que la representación interna sea inmutable o nuble) y proporcionar los métodos apropiados para sus objetos.


La ventaja de usar el objeto de cadena son todos los métodos disponibles. Por ejemplo:

stringExample1.equals(stringExample2); String stringExample3 = stringExample1.replace(substring1, substring2);


String es una clase en Java que le ofrece métodos y también es un Objeto.

Un objeto de cadena también es inmutable.

El valor interno es una matriz char.


String es inmutable. Char array no es. Una cadena se implementa con una matriz char debajo, pero cada vez que intenta modificarla (como con la concatenación, reemplazar etc.) le da un nuevo objeto String .

Entonces, String comporta como un conjunto constante de Char pero viene con cierto azúcar sintáctico que también los hace mucho más fáciles de usar. Por ejemplo, el operador de suma + se ha sobrecargado como operador de concatenación de cadenas.


String es inmutable en Java y se almacena en el grupo de cadenas. Una vez que se ha creado, permanece en el grupo hasta que se recoja la basura. Dado que String es inmutable, la contraseña de inicio de sesión es como una cadena legible. Tiene un mayor riesgo de generar el volcado de memoria para encontrar la contraseña.

donde como matriz de caracteres se crea en el montón y puede anular con algunos valores ficticios.