¿Cuál es el uso en tiempo real de JAVA StringBuffer.capacity() MÉTODO ...?
¿Alguien puede decirme el caso de uso donde realmente se usó para ...?

class StringBufferExample6 {
    public static void main(String args[]) {
        StringBuffer sb = new StringBuffer();
        System.out.println(sb.capacity());// default 16
        sb.append("Hello");
        System.out.println(sb.capacity());// now 16
        sb.append("java is my favourite language");
        System.out.println(sb.capacity());// now (16*2)+2=34 i.e (oldcapacity*2)+2
    }
}
2
Sai Shashank 14 sep. 2018 a las 10:38

4 respuestas

La mejor respuesta

Si sabe que su StringBuffer va a contener caracteres 10000, tiene sentido establecer la capacidad inicial en 10000:

StringBuffer sb=new StringBuffer(10000);

De esta forma, la matriz de respaldo char que contiene los datos no tendrá que reasignarse varias veces, lo que puede mejorar el rendimiento.

1
Eran 14 sep. 2018 a las 07:40

En una nota teórica, el método java.lang.StringBuffer.capacity () se usa a menudo para devolver la capacidad actual. Que básicamente quería especificar la capacidad de almacenamiento para los caracteres recién insertados.

Es posible que desee ver esto. https://www.tutorialspoint.com/java/lang/stringbuffer_capacity.htm

0
Ryan 14 sep. 2018 a las 07:46

La capacidad es la cantidad de almacenamiento disponible para los caracteres recién insertados, más allá del cual se producirá una asignación (de documentos).

Por lo general, el mínimo es la longitud + 16, cuando se excede el recuento de caracteres de la cantidad asignada, este buffer de cadena también aumenta su tamaño.

0
benjamin c 14 sep. 2018 a las 07:49

Si conoce el posible número de caracteres de antemano. Puede establecer la capacidad, por lo que el compilador asignará esa cantidad de memoria. Ayuda a mejorar el rendimiento ya que el compilador no tiene que reasignar la memoria cada vez que se modifica StringBuffer.

0
Mushif Ali Nawaz 14 sep. 2018 a las 07:45