to create one long string that gets created from the readers.
你有没有机会这样做来创造你的“长串”?
String string;
while(...)
string+=whateverComesFromTheSocket;
如果是,则将其更改为
StringBuilder str = new StringBuilder(); //Edit:Just changed StringBuffer to StringBuilder
while(...)
str.append(whateverComesFromTheSocket);
String string = str.toString();
字符串对象是不可变的,当你执行str =“something”时,将重新分配内存并将str“something”复制到新分配的区域.这是一项昂贵的操作,运行51,000次是一件非常糟糕的事情.
StringBuffer和StringBuilder是String的可变兄弟和StringBuilder,非并发比StringBuffer更有效.