Len*_*des -3 java string stringbuilder
假设我有以下代码:
StringBuilder sb = new StringBuilder("521,214");
String[] result = sb.toString().split(",");
Run Code Online (Sandbox Code Playgroud)
我的问题是:确实toString().split(",")生成2个字符串或3个字符串?我知道结果String数组将有2个字符串 - 但toString()调用也会生成一个字符串 - 不返回?
基本上,我试图限制为性能目的而创建的字符串数量,并想知道toString()调用是否将创建的字符串总数增加到3?
String这两行总共会创建五个对象:
"521,214"对象传递给了StringBuilder构造函数.该对象位于实习字符串池中,","传递给的String对象split.该对象也在实习字符串池中,"521,214"由...产生的等效对象toString.每次调用都会toString产生一个新String对象.没有优化来查看之前是否已请求相同的字符串对象.String对象"521""214"split毫无疑问,String[]将创建一个数组对象来保存"521"和"214"从该split方法返回的对象.
| 归档时间: |
|
| 查看次数: |
1433 次 |
| 最近记录: |