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.

  • ¿Cómo escribir los controladores para Android?
  • ¿Por qué Android permite instalar un APK con un certificado caducado?
  • Procesamiento para Android, uso de bibliotecas
  • Dejar una animación de Android en su estado final
  • No se encontró JNI_OnLoad en ... saltando init
  • ¿Hay un evento de instalación en android?
  • ¿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

  • "No se pudo resolver el recurso" en la vista previa de Android Studio
  • Dar texto de la pestaña seleccionada un color diferente utilizando ViewPagerIndicator
  • SQLite "INSERT OR REPLACE INTO" no funciona
  • ¿Hay un equivalente a setColorFilter () en XML?
  • El uso de DiskLruCache en android 4.0 no proporciona el método openCache
  • ¿Cómo obtener resultados específicos del país en la API de Google Places para AutocompletePredictions en Android?
  • 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.