Why would the StringBuffer
have a limit on its size?
I went through some of the links : http://www.coderanch.com/t/540346/java/java/maximum-size-hold-String-buffer.
Is that because of the count member variable, which is an int?
Suppose that we have 2^31-1 chars in StringBuffer
and that we append some more chars to that StringBuffer
. Count member variable would be incremented by the number of chars appended and if Count variable is already at its max (2^31-1), it would revert back to some negative value.
Why would it throw an error?
because stringbuffer internally uses an array and the maximum number of elements an array can accommodate is 2^31-1 if you increment after reaching this it will go to negative and throws the error