Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cuál es la cantidad máxima de datos que una String puede contener en java?

Sé que esto puede ser un qustion realmente noobish para pedir pero no encontré ningún recurso confiable bueno donde puedo conseguir esta información.

En una aplicación de Android, estoy tratando de mantener los datos en una cadena de sólo seguir añadiéndola con más datos. Y finalmente cuando el usuario cierra la aplicación o golpea un "botón de guardar", lo registro en un archivo .csv de datos.

¿Quiero saber cuánto datos puede tener un String simple en java? , Para que la aplicación no se bloquee si el tipo de datos String se agota de la memoria asignada. BTW He intentado hacer hincapié en la prueba de mi aplicación, y parece correr bien, no importa la cantidad de datos que almacenar en una cadena.

Adit

  • JSON problema de análisis no resuelto
  • ¿Cómo cortar y revertir la vista de la cámara?
  • Establecer lockscreen a "None" por programa?
  • Android: acelerar la transición de elementos compartidos entre actividades
  • Android spinner Data Binding utilizando XML y mostrar los valores seleccionados
  • Detección de lanzamientos de actividades de Android
  • Cómo esperar a que Android runOnUiThread para ser terminado?
  • ¿Debemos usar clases anónimas para OnClickListeners o clases internas con nombre?
  • 3 Solutions collect form web for “¿Cuál es la cantidad máxima de datos que una String puede contener en java?”

    Al ver como el método length () de la clase String devuelve un valor int, la longitud máxima que sería devuelta por el método sería Integer.MAX_VALUE, que es 2 ^ 31 – 1 (o aproximadamente 2 billones).

    Así que usted puede tener una cadena de 2,147,483,647 caracteres, teóricamente. No creo que necesites mucho más que eso.

    Sin embargo, como @TedHopp ha señalado en los comentarios y publicado en su respuesta, el sistema Android limita su espacio de montón, pasando tan bajo como 16 MB. Por lo tanto, nunca será prácticamente capaz de alcanzar el límite teórico, y max con una cadena en algún lugar en el rango de 4-64 millones de caracteres.

    Esto probablemente estará limitado por el tamaño de montón disponible para la aplicación. Esto puede variar con el modelo de teléfono y con el fabricante de teléfonos / portadoras. Para los dispositivos Android, la respuesta aquí enumera los tamaños de montón máximo para varios modelos de teléfono; Varían entre 16 y 256 MB.

    Tenga en cuenta que Java almacena las cadenas como códigos UTF-16, por lo que cada carácter ocupa dos bytes. Ya sea que esté agregando cadenas directamente o utilizando un StringBuilder (mucho mejor), en ocasiones necesitará el doble de memoria: una para almacenar la cadena existente y otra para almacenar la nueva cadena / buffer cuando sea necesario expandirla.

    Si se considera que todos juntos, la longitud máxima de la cadena es probable que sea algo del orden de 4 a 64 millones de caracteres, dependiendo del teléfono (muy por debajo del máximo teórico de 2 31 -1).

    Bill el lagarto respondió en esta pregunta

    Debe ser capaz de obtener una cadena de longitud Integer.MAX_VALUE (siempre 2147483647 (231 – 1) por la especificación de Java, el tamaño máximo de una matriz, que la clase String utiliza para el almacenamiento interno) o la mitad de su tamaño de montón máximo Cada carácter es de dos bytes), lo que sea menor.

    Sin embargo, para sus secuencias de concatenación de cadenas usted debe utilizar un StringBuilder que se hace para tales propósitos.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.