En esta blog post, se dice que el uso de memoria mínima de una cadena es:¿Por qué se dice que el uso de la memoria String de Java es alto?
8 * (int) ((((no chars) * 2) + 45)/8)
bytes.
Por lo tanto, para el String "Apple Computers", el uso mínimo de memoria sería de 72 bytes.
Incluso si tengo 10,000 objetos String de dos veces esa longitud, el uso de la memoria sería menos de 2Mb, que no es mucho. Entonces, ¿eso significa que estoy subestimando la cantidad de cadenas presentes en una aplicación empresarial, o esa fórmula es incorrecta?
Gracias
Dado que String es inmutable, las operaciones que realice en él realmente pueden * ahorrar * espacio, porque las cadenas pueden compartir memoria. – Thilo
Pero cada vez que creas un nuevo objeto 'String', ¿no ocuparía más memoria? –
Las primitivas usan 32 bytes? Creo que te refieres a bits. :) – Makoto